在Greasemonkey中,我可以用:
重写全局alert()
函数
window.alert = function() {...}
它可以在任何地方使用。
但是,在Tampermonkey(Chrome)中,它只适用于它自己的脚本。
为什么呢? 我可以让它在全球范围内运作吗?
答案 0 :(得分:3)
实际上,这只会在Greasemonkey中有效。 grant mode必须是none
- 我建议反对。正如您所发现的那样,意外地绊倒该模式会导致不可移植的脚本 - 以及超出此问题范围的其他罪行。
要使此代码适用于Tampermonkey(以及Greasemonkey),请使用unsafeWindow,如下所示:
// ==UserScript==
// @name _YOUR_SCRIPT_NAME
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant unsafeWindow
// ==/UserScript==
unsafeWindow.alert = function() {...}
或者,使用脚本注入,如this answer所示。
@grant unsafeWindow
指令适用于Greasemonkey - 恢复沙箱并允许使用unsafeWindow
。这使得同一个脚本在Tampermonkey和Greasemonkey中的工作方式相同。