javascript - 加了Tampermonkey的onclick是不是调用了函数?

标签 javascript jquery onclick tampermonkey

如果我使用 Tampermonkey 以编程方式创建一个 div:

HTML:

<div onclick="myfunc()"/>

脚本:

function myfunc() { alert("clicked"); }

然后点击div; myfunc 未在我的脚本中调用。

我怎样才能让它工作?

(我使用 TM/jQuery 将 div 添加到页面,我想为其附加一些功能。我假设我必须将 HTML 中的函数调用重定向到正确的位置。我还使用 GM_ 函数所以我不能直接插入代码。)

最佳答案

问题在于,由于您将属性设置为字符串,它会在目标页面范围内评估字符串,而该范围没有 myfunc 函数。 myfunc 位于用户脚本范围内。

作为一般规则,您应该 never use onclick无论如何,但这对于用户脚本来说是三倍的。

使元素易于选择,例如:

<div id="gmMyDiv"></div>


然后,要么使用 the addEventListener() method ,像这样:

function myfunc (zEvent) {
    alert ("clicked"); 
}

var myDiv   = document.querySelector ("#gmMyDiv");
if (myDiv) {
    myDiv.addEventListener ("click", myfunc , false);
}


或者因为您使用的是 jQuery:

function myfunc (zEvent) {
    alert ("clicked"); 
}

$("#gmMyDiv").click (myfunc);

关于javascript - 加了Tampermonkey的onclick是不是调用了函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704209/

相关文章:

javascript - 如何在 webpack 构建期间转换 HTML 文档中的脚本标签?

javascript - 从 Node.js 返回 URL 时出现 "Error: Capture"

jquery 从对话框发布表单

javascript - jQuery 新手,需要一些帮助

android - 动态创建的功能性可点击表格行

javascript - “箭头功能”和“功能”是否等效/可互换?

javascript - 在 mongodb 中,作为 key 而不是匿名用户的用户名和密码传递什么?

javascript - 如何编辑 jQuery 动画以显示在元素中间?

javascript - 从 'onblur' 事件中排除表单按钮,JavaScript

javascript - 使用 onclick 将变量传递给表单