Chrome 不翻译代码

在 Chrome中不翻译代码

目前为 2022-03-24 提交的版本。查看 最新版本

// ==UserScript==
// @name         Chrome 不翻译代码
// @namespace    https://github.com/wuuashen/UserScript
// @version      1.0
// @description  在 Chrome中不翻译代码
// @author       wuuashen
// @include      *
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    let count = 0
    function injectCls(deferElm){
        const elms = ['code', 'pre']
            .reduce((acc, cur) => {
            const nodeList = deferElm ? deferElm.querySelectorAll(cur) : document.querySelectorAll(cur);
            return [...acc, ...nodeList];
        }, [])
        for (const elm of elms) {
            if(elm.classList.contains('notranslate') || elm.getAttribute('translate')) continue;
            elm.classList.add('notranslate');
            elm.setAttribute('translate', 'no');
            count++
        }

    }
    document.addEventListener('DOMContentLoaded', () => { injectCls() })

    let observer = new MutationObserver(mutations => {
        for (const mutation of mutations) {
            if(mutation.type !== 'childList') continue;
            injectCls(mutation.target)
        }
    });
    observer.observe(document.body, {childList: true, subtree: true});
    setTimeout(() => { observer.disconnect() }, 3000)
})();