When I write a GreaseMonkey script, if I create a div and set onclick to alert it works:
var btn = document.createElement('div');
btn.setAttribute('onclick',"alert('clicked!');");
However, if I ask it to do something else that was defined earlier then it fails:
function graphIt() {...};
var btn = document.createElement('div');
btn.setAttribute('onclick',"graphIt();");
Is there any way I can bind a function to the onclick event of a div?
Your problem is that since you're seting the attribute to a string, it's evaluating the string in the context of the page itself, which doesn't have a graphIt
function.
You should call the addEventListener
method, like this:
function graphIt() {...}; var btn = document.createElement('div');
btn.addEventListener("click", graphIt, false);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With