COC2 翻译分段修复

修复 Google 翻译导致段落合并的问题

目前為 2024-10-29 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         COC2 翻译分段修复
// @namespace    http://tampermonkey.net/
// @version      2024-10-29
// @description  修复 Google 翻译导致段落合并的问题
// @author       LinHQ
// @match        *://*/*
// @grant        none
// @run-at       context-menu
// @license      AGPLv3
// ==/UserScript==

(function () {
  'use strict';
  new MutationObserver((li, ob) => {
    try {
      li.forEach((mu) => {
        if (mu.type !== 'childList') return
        const nodes = mu.addedNodes
        nodes.forEach(node => {
          let t
          if (node.nodeType === 3) {
            t = node.parentNode
          } else if (node?.querySelector('.mainText')) {
            t = [...node?.querySelectorAll('.mainText')].pop()
          }

          if (!t?.matches('.mainText')) return

          requestAnimationFrame(() => {
              ob.disconnect()
              t.innerHTML = t.innerHTML?.replaceAll('\n', '<br>') ?? t.innerHTML
              ob.observe(document, {
                  subtree: true,
                  childList: true
              })
          })
        })
      })
    } catch (e) {
      console.warn('Script Error!', e)
    }
  }).observe(document, {
    subtree: true,
    childList: true
  })
})();