当我写一个GreaseMonkey脚本时,如果我创建一个div并设置onclick来提醒它有效:
var btn = document.createElement('div');
btn.setAttribute('onclick',"alert('clicked!');");
但是,如果我要求它做一些之前定义的其他事情,那么它就会失败:
function graphIt() {...};
var btn = document.createElement('div');
btn.setAttribute('onclick',"graphIt();");
有什么方法可以将函数绑定到div的onclick事件?
答案 0 :(得分:10)
您的问题是,由于您将属性设置为字符串,因此它会在页面本身的上下文中评估字符串,该字符串没有graphIt
函数。
您应该调用addEventListener
方法,如下所示:
function graphIt() {...}; var btn = document.createElement('div');
btn.addEventListener("click", graphIt, false);