如果我使用Tampermonkey以编程方式创建div:
HTML:
<div onclick="myfunc()"/>
脚本:
function myfunc() { alert("clicked"); }
然后点击div;我的脚本中未调用myfunc
。
我怎样才能让它发挥作用?
(我使用TM / jQuery将div添加到页面中,我想附加一些功能。我假设我必须将HTML中的函数调用重定向到正确的位置。我也使用{{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);