javascript - Tampermonkey 替换 window.onload

标签 javascript google-chrome tampermonkey

我正在尝试用我自己的函数替换网站的 window.onload 函数:

window.onload = function () {alert("TEST");};

但是,据我所知,它不起作用(我没有收到任何警报)。我包含了 //@run-at document-end。我觉得是及时拦截window.onload的问题。

最佳答案

document-endDOMContentLoaded 处执行脚本事件(另见 Tampermonkey docs ),所以如果页面很简单,则 onload事件可能已经被触发,您的函数将不会运行。

如果您想禁用/覆盖网页的 window.onload 功能:

// @run-at document-start
// @grant  none
....................
window.onload = function () {alert("TEST");};

第一行将指示 Tampermonkey/Greasemonkey 尽快尝试注入(inject)您的用户脚本,第二行将在网页的上下文/环境中运行您的用户脚本,因为默认情况下所有用户脚本都在具有代理 DOM 的单独沙箱中运行并且不能设置/调用网页功能,反之亦然。

如果您已经有一些 @grant key ,请改用 unsafeWindow:

// @run-at document-start
// @grant  unsafeWindow
// @grant  GM_addStyle
....................

unsafeWindow.onload = function () {alert("TEST");};

关于javascript - Tampermonkey 替换 window.onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572637/

相关文章:

javascript - 更新现有类别中的类别时,不应显示在下拉框中

google-chrome - 如何在 Chrome 开发工具中调出移动键盘?

javascript - 如果没有 TamperMonkey,脚本将无法运行

html - 奇怪的 CSS 问题,内容单元在 IE 中移动到页面底部 - 在 Chrome 和 Firefox 中工作正常

google-chrome - 提交自动填充(密码输入字段)

javascript - 一个脚本来点击两个不同页面上的按钮?

javascript - 回调已经被称为异步并行

javascript - 如何使用 Javascript 提交 PDF 格式的表单?

javascript - 从两个不同的类导入时, Electron 应用程序会复制变量......?

javascript - 打开弹出窗口后谷歌浏览器上出现奇怪的行,如何避免?