在 Greasemonkey 中我可以重写全局 alert()
功能:
window.alert = function() {...}
它可以在任何地方工作。
但是,在 Tampermonkey (Chrome) 中,它仅适用于它自己的脚本。
最佳答案
事实上,这有时只在 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() {...}
或者使用脚本注入(inject),如this answer所示.
@grant unsafeWindow
指令用于 Greasemonkey——恢复沙箱并允许使用 unsafeWindow
。这使得相同的脚本在 Tampermonkey 和 Greasemonkey 中以相同的方式工作。
关于javascript - 重写全局alert()函数在Tampermonkey中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15859439/