如何从浏览器的JS控制台控制Tampermonkey脚本的功能
How to control a Tampermonkey script's function from the browser's JS console?
我用这段代码写了一个 Greasemonkey/Tampermonkey 脚本:
var on = true;
function doSomething(){
if(on){
//do stuff
}
}
setInterval(doSomething,1000);
通常该功能处于活动状态,但在少数情况下,我想从浏览器中的 javascript 控制台禁用它。
我不想在网页上添加额外的切换按钮。
我怎样才能做到这一点?在控制台中输入 on = true
不起作用,因为on
"未定义"。
Greasemonkey 和 Tampermonkey 在与目标页面不同的范围内运行,也可以使用沙箱。
目标页面和 JS 控制台看不到脚本作用域中定义的变量和函数,但脚本可以将内容注入目标页的作用域。
因此,将 on
变量放在目标页面范围内,然后可以从控制台控制该函数。 在这种情况下,请使用unsafeWindow
文档来执行此操作。
一个完整的 Greasemonkey 和 Tampermonkey 脚本是:
// ==UserScript==
// @name _Allow console control of Tampermonkey function
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant unsafeWindow
// ==/UserScript==
unsafeWindow.on = true;
function doSomething () {
if (unsafeWindow.on){
//do stuff
}
}
setInterval (doSomething, 1000);
在控制台中,省略unsafeWindow
。 也就是说,您将使用:
on = false;
// OR
on = true;
以停止和启动该脚本的操作。
请注意,在 Chrome 中,脚本必须在 Tampermonkey 中运行,而不是在 Chrome 的原生用户脚本仿真中运行。
相关文章:
- JS编译器/包管理器,用于版本控制
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 如何控制组件'的createContent函数被激发
- 节点协同与生成器和Promise并行流量控制
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- 获取对使用Tampermonkey使用javascript创建的元素的引用
- 使用:new Image()控制加载html.src=html_URL
- 传单缩放控制位置错误
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 使用jQuery控制来自图像的音频
- CORS:否'访问控制允许来源'header-但是php设置头文件
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- 为什么可以't我将检索到的文档分配给控制台中的变量
- 需要 jQuery 到 Tampermonkey 脚本和控制台中的安全变量
- 使用 Tampermonkey/javascript 控制 Netflix (HTML5) 播放
- 如何使 Tampermonkey 添加的函数在脚本运行后在控制台中可用
- 如何从浏览器的JS控制台控制Tampermonkey脚本的功能