您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Converts Javascript links that open new windows into regular old links
当前为
// ==UserScript== // @name Javascript Link Fixer // @namespace DoomTay // @description Converts Javascript links that open new windows into regular old links // @version 1.1.3 // @grant none // ==/UserScript== var links = document.querySelectorAll("a[href *= 'javascript:']"); var paramTable = {}; paramTable["open"] = 0; paramTable["window.open"] = 0; for (var l = 0; l < links.length; l++) { if(links[l].href.indexOf("void") > -1) continue; var hrefSplitter = /javascript:(\S+)\((\S+(?:,(?: )\S+)*)?\)/.exec(links[l].href); if(hrefSplitter == null) continue; var functionName = hrefSplitter[1]; var params = hrefSplitter[2] ? decodeURIComponent(hrefSplitter[2]).split(",") : []; var functionDig = deconstructFunction(functionName,params); if(functionDig != null) links[l].href = functionDig; } function deconstructFunction(functionName,params) { var sourceCode = uneval(window[functionName]); var functionBody = sourceCode.substring(sourceCode.indexOf("{") + 1,sourceCode.indexOf("}")).trim(); var args = /\(((?: )?\S+(?:,(?: )\S+)*)?(?: )?\)/.exec(sourceCode); args = args ? args[1].split(/\s*,\s*/) : []; var containedFunctions = (/(\S+\(\S+(?:,(?: )\S+)*\);)/g.exec(functionBody)); var variableDefs = /(\S+) ?= ?(.+);/g.exec(functionBody); if(containedFunctions) { containedFunctions.shift(); for(var s = 0; s < containedFunctions.length; s++) { var capture = /(\S+)\((\S+(?:,(?: )\S+)*)?\);/.exec(containedFunctions[s]); var statementName = capture[1]; var statementParams = capture[2]; if(variableDefs) { for(var v = 1; v < variableDefs.length; v += 2) { statementParams = statementParams.replace(new RegExp(" ?\\+ ?" + variableDefs[v],"g"), " + " + variableDefs[v + 1]); statementParams = statementParams.replace(new RegExp(variableDefs[v],"g"), variableDefs[v + 1]); } } for(var a = 0; a < params.length; a++) { statementParams = statementParams.replace(new RegExp(" ?\\+ ?" + args[a],"g"), " + " + params[a]); statementParams = statementParams.replace(new RegExp(args[a],"g"), params[a]); } statementParams = eval("[" + statementParams + "]"); if(paramTable.hasOwnProperty(statementName)) return(statementParams[paramTable[statementName]]); var digDeeper = deconstructFunction(statementName,statementParams); if(digDeeper) return digDeeper; } } if(functionBody.indexOf(".location = ") > -1) { var test = /\.location ?= ?(\S+);/.exec(functionBody)[1]; for(var p = 0; p < params.length; p++) { if(test == args[p]) return params[p]; } } return null; }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址