添加了Tampermonkey的onclick没有调用该函数?

时间:2013-05-23 01:27:35

标签: javascript jquery onclick tampermonkey

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

HTML:

<div onclick="myfunc()"/>

脚本:

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

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

我怎样才能让它发挥作用?

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

1 个答案:

答案 0 :(得分:8)

问题在于,由于您将属性设置为字符串,因此它正在评估目标页面范围中的字符串,该范围没有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);