您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
油猴菜单库,支持开关菜单,支持状态保持,支持 Iframe
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/496315/1392531/QuickMenu.js
油猴菜单库,支持开关菜单,支持状态保持,支持 Iframe
Key | 类型 | 必填 | 参数描述 |
---|---|---|---|
name | string | 是 | 菜单名称 |
type | 'button' 或 'toggle' | 否 | 菜单类型,toggle 会额外展示当前菜单状态 |
shouldInitRun | boolean 或 () => boolean | 否 | 注册(不可用)菜单后是否要立即执行回调,默认为 false |
shouldAddMenu | boolean 或 () => boolean | 否 | 当前环境是否注册(不可用)菜单,默认为 true |
callback | (value: undefined 或 'on' 或 'off' ) => void | 是 | 初始化执行和点击菜单的回调函数,如果是 toggle 类型的话 value 会返回点击后状态(on 或 off ) |
QuickMenu.add({
// 菜单名称
name: '开启 eval 调试',
// 菜单类型
type: 'toggle',
// 开启初始化执行回调,这样宿主和 Iframe 环境会初始化执行
shouldInitRun: true,
// 这里只有最顶层宿主才会注册(不可用)菜单,点击 toggle 之后也会发送消息给其他环境,同步执行回调
shouldAddMenu: () => {
return unsafeWindow === unsafeWindow.top;
},
// 执行回调逻辑
callback: (value) => {
// 保存原始的 eval 函数
const originalEval = eval.originalEval ? eval.originalEval : eval;
eval.originalEval = originalEval;
if (value === 'on') {
// 定义一个新的 eval 函数
const patchedEval = function (code) {
// 在 eval 的代码前插入 debugger 语句
const codeWithDebugger = `debugger; ${code}`;
return originalEval(codeWithDebugger);
};
patchedEval.prototype = originalEval.prototype;
// 替换全局的 eval 函数
unsafeWindow.eval = patchedEval;
} else if (value === 'off') {
unsafeWindow.eval = originalEval;
}
},
});
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址