在Tampermonkey中重写全局alert()函数不起作用
Rewriting the global alert() function doesn't work in Tampermonkey
在Greasemonkey中,我可以重写全局alert()
函数:
window.alert = function() {...}
,它在任何地方都有效。
但是,在Tampermonkey (Chrome)中,它只能在自己的脚本上工作。
为什么?我能让它在全球范围内发挥作用吗?
实际上,这只会在Greasemonkey有时工作。授予模式必须是none
——我不建议这样做。正如您所发现的,不小心触发该模式会导致脚本不可移植——以及其他超出这个问题范围的错误。
要使此代码在Tampermonkey(和Greasemonkey)上工作,使用unsafeWindow,如下所示:
// ==UserScript==
// @name _YOUR_SCRIPT_NAME
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant unsafeWindow
// ==/UserScript==
unsafeWindow.alert = function() {...}
或者,使用脚本注入,如本答案所示。
@grant unsafeWindow
指令是为Greasemonkey—恢复沙盒,并允许使用unsafeWindow
。这使得相同的脚本在Tampermonkey和Greasemonkey中以相同的方式工作。
相关文章:
- Ember Data DS.Model's set函数不起作用
- 为什么我的JavaScript堆栈排序函数不起作用
- Javascript onchange()函数不起作用
- 另一个Ajax函数触发的Ajax函数不起作用
- 从PHP调用JS函数不起作用
- jQuery validate函数不起作用
- JS-窗口宽度函数不起作用
- javascript函数,该函数不起作用,但不会显示任何错误
- 为什么这个排序函数不起作用
- 为什么这个反向函数不起作用
- Javascript parseInt 函数不起作用
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 主干构造函数不起作用
- Javascript:this.value 函数不起作用
- Mocha 的 beforeEach() 和 done() 函数不起作用
- 在jQuery中,我的函数不起作用
- jquery-ui-rails的draggable和dropable函数不起作用
- 数学函数不起作用
- Javascript-创建打印到HTML的函数不起作用
- 我上传了客户's服务器一个js函数不起作用