先科普一下

篡改猴(Tampermonkey)是一款用户脚本管理器,它能让你通过安装他人或自己编写的 JS 脚本来修改网页功能、优化网页界面或实现自动化操作。
它支持各大主流浏览器,具备脚本更新、云端同步和内置编辑器等功能。

用户可通过 Greasy Fork 等平台获取海量脚本,去除广告、跳过视频片头,破解网页限制、辅助下载文件,篡改猴能帮你把浏览器定制成最顺手的样子。

想怎

热衷于“热衷于”一切,怎能错过这等工具,多说无益,就……

为维护国家安全和公共利益,保护国民经济命脉及重要企业合法权益,我国依法对部分有害互联网站点进行屏蔽❤
当然,是绝对不可以的!

毛主席曾经说:自己动手,丰衣足食!
终身学习,构建独特方案,懂得融会变通,拥有判断力和洞察力,以及丰富的经验是AI时代得以立足的制胜法宝!

总的说来,油猴脚本就是外联js文件,只不过通常会在开头加一些注释规定程序信息,例如:

// ==UserScript==
// @name         New Userscript
// @namespace    https://viayoo.com/nf2t7f
// @version      0.1
// @description  try to take over the world!
// @author       You
// @run-at       document-end
// @match        https://*/*
// @grant        none
// ==/UserScript==

展示成果

// ==UserScript==
// @name         词渡
// @namespace    https://zooyoo.top/
// @version      1.0
// @description  页面自动翻译为中文
// @grant        none
// ==/UserScript==

(function() {
  if (window._translated) return;
  window._translated = true;

  function getLang() {
    var lang = (document.documentElement && document.documentElement.getAttribute('lang')) ||
               (document.head && document.head.getAttribute('lang')) || '';
    return lang.toLowerCase();
  }

  function isForeign(lang) {
    return lang && !lang.startsWith('zh');
  }

  function translate() {
    if (!isForeign(getLang())) return;

    var nodes = [];
    var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, {
      acceptNode: function(node) {
        var parent = node.parentElement;
        if (!parent || parent.tagName === 'SCRIPT' || parent.tagName === 'STYLE')
          return NodeFilter.FILTER_REJECT;
        return node.nodeValue.trim() ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
      }
    });
    while (walker.nextNode()) nodes.push(walker.currentNode);

    if (!nodes.length) return;

    var texts = nodes.map(function(n) { return n.nodeValue; });
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'https://edge.microsoft.com/translate/translatetext?from=' + (getLang().split('-')[0] || 'en') + '&to=zh-CHS', true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.onreadystatechange = function() {
      if (xhr.readyState === 4 && xhr.status === 200) {
        try {
          var data = JSON.parse(xhr.responseText);
          var results = [];
          if (Array.isArray(data)) {
            for (var i = 0; i < data.length; i++) {
              results.push(data[i] && data[i].translations ? data[i].translations[0].text : data[i]);
            }
          }
          for (var i = 0; i < nodes.length && i < results.length; i++) {
            if (results[i]) nodes[i].nodeValue = results[i];
          }
        } catch(e) {}
      }
    };
    xhr.send(JSON.stringify(texts));
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', translate);
  } else {
    translate();
  }
})();

本段代码著作权完全归豆包AI模型自身所有,本人未提供任何形式的引导,对其调用何种接口和是否取得法律许可全然不知,本人仅履行侵权信息移除义务!

这个是我做的,自用有一段时间了,应该没什么大问题……

如何运行

用via浏览器打开以下两个链接,在弹出提示中安装即可!(未弹出请移步设置/脚本/添加脚本粘贴即可)自动翻译-戳这里!

标签: 随手札记, 技术实践, 工具分享

添加新评论