tampermonkey onclick 无效,显示 xxx is not defined

更新日期: 2021-02-02 阅读次数: 4677 字数: 162 分类: Tampermonkey

使用 tampermonkey 在当前网页中添加了一个按钮,用于手动触发自动化逻辑。

<button id="tm_btn" onclick="do_something()">开始抢购</button>

do_something 函数,是我在 tampermonkey 脚本中定义的函数。

但是,点击按钮之后,报错:

Uncaught ReferenceError: do_something is not defined
    at HTMLButtonElement.onclick

为何会找不到函数定义

原因是,tampermonkey 运行在一个沙箱环境中,按钮的 onclick 指定的回调函数由于在沙箱中定义,所以无法寻找到。

使用 addEventListener 解决

解决方法,tampermonkey 中为按钮添加事件监听:

document.getElementById("tm_btn").addEventListener("click", do_something);

参考

https://stackoverflow.com/questions/17378199/uncaught-referenceerror-function-is-not-defined-with-onclick

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式