如果我使用 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/