您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
4/3/2021, 1:52:08 AM
// ==UserScript== // @name Chrome CRX Downloader // @namespace https://github.com/YandLiu/Userscripts/ // @match https://chrome.google.com/webstore/detail/* // @grant none // @version 1.0 // @author YandLiu // @description 4/3/2021, 1:52:08 AM // ==/UserScript== (function (root) { "use strict"; var listeners = []; var doc = window.document; var MutationObserver = window.MutationObserver || window.WebKitMutationObserver; var observer; function ready(selector, fn) { // 储存选择器和回调函数 listeners.push({ selector: selector, fn: fn, }); if (!observer) { // 监听document变化 observer = new MutationObserver(check); observer.observe(doc.documentElement, { childList: true, subtree: true, }); } // 检查该元素是否已经在DOM中 check(); } function check() { // 检查DOM元素是否匹配已储存的元素 for (var i = 0; i < listeners.length; i++) { var listener = listeners[i]; // 检查指定元素是否有匹配 var elements = document.querySelectorAll(listener.selector); for (var j = 0; j < elements.length; j++) { var element = elements[j]; // 确保回调函数只会对该元素调用一次 if (!element.ready) { element.ready = true; // 对该元素调用回调函数 listener.fn.call(element, element); } } } } // 对外暴露ready root.ready = ready; })(window); (function () { "use strict"; ready("h1", insert); })(); function insert() { var link = "https://clients2.google.com/service/update2/crx?response=redirect&nacl_arch=" + "&prodversion=89.0.4389.90" + "&acceptformat=crx2,crx3&x=id%3D" + document.location.href.split("/")[6].split("?")[0] + "%26installsource%3Dondemand%26uc"; var title = document.querySelector("h1"); var a = document.createElement("a"); a.href = link; a.innerText = " Download"; title.appendChild(a); }