您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
移除 eval 和 Function 中的 debugger 语句
- // ==UserScript==
- // @name remove-debugger
- // @namespace https://github.com/pansong291/
- // @version 0.0.2
- // @description 移除 eval 和 Function 中的 debugger 语句
- // @author paso
- // @license Apache-2.0
- // @match *://*/*
- // @icon
- // @grant none
- // @run-at document-start
- // ==/UserScript==
- ;(function () {
- 'use strict'
- const oEval = window.eval
- const oFunction = window.Function
- const handleArgs = (args, last) => {
- if (!args?.length) return
- const ind = last ? args.length - 1 : 0
- if (!args[ind]?.replaceAll) return
- args[ind] = args[ind].replaceAll(/\bdebugger\b/g, ';/*debugger*/;')
- }
- window._original_eval = oEval
- window._original_Function = oFunction
- window.eval = new Proxy(oEval, {
- apply(target, thisArg, argArray) {
- handleArgs(argArray, false)
- return target.apply(thisArg, argArray)
- }
- })
- window.Function = new Proxy(oFunction, {
- apply(target, thisArg, argArray) {
- handleArgs(argArray, true)
- return target.apply(thisArg, argArray)
- },
- construct(target, argArray, newTarget) {
- handleArgs(argArray, true)
- return new target(...argArray)
- }
- })
- oFunction.prototype.constructor = window.Function
- }())