Arc*_*val 5 javascript jquery onclick tampermonkey
如果我使用Tampermonkey以编程方式创建div:
HTML:
<div onclick="myfunc()"/>
Run Code Online (Sandbox Code Playgroud)
脚本:
function myfunc() { alert("clicked"); }
Run Code Online (Sandbox Code Playgroud)
然后点击div; myfunc在我的脚本中没有调用.
我怎样才能让它发挥作用?
(我使用TM/jQuery将div添加到页面中,我想附加一些功能.我假设我必须将HTML中的函数调用重定向到正确的位置.我也使用GM_函数,所以我不能只需直接插入代码.)
问题是,由于您将属性设置为字符串,因此它正在评估目标页面范围中的字符串,该字符串没有myfunc函数. myfunc驻留在用户脚本范围内.
作为一般规则,你永远不onclick应该使用,但这对于用户脚本来说是三倍.
使元素易于选择,如:
<div id="gmMyDiv"></div>
Run Code Online (Sandbox Code Playgroud)
然后,既可以使用该addEventListener()方法,如下所示:
function myfunc (zEvent) {
alert ("clicked");
}
var myDiv = document.querySelector ("#gmMyDiv");
if (myDiv) {
myDiv.addEventListener ("click", myfunc , false);
}
Run Code Online (Sandbox Code Playgroud)
或者因为你使用jQuery:
function myfunc (zEvent) {
alert ("clicked");
}
$("#gmMyDiv").click (myfunc);
Run Code Online (Sandbox Code Playgroud)