首页 文章

单击文档加载Tampermonkey上的事件触发

提问于
浏览
2

我正在编写一个Tampermonkey脚本,它向页面添加一个按钮,然后将onClick事件添加到该按钮 . 我在页面上有我想要的按钮,但是当我尝试使用“addEventListener”附加点击事件时,如相关问题中关于用户脚本中的单击事件的建议,事件处理程序在页面加载时触发,而不是在按钮点击时触发 .

var testbutton = document.createElement("button");
testbutton.addEventListener('click', alert("Working"), false);
testbutton.id = "testbutton";
testbutton.innerHTML = "This is a button";

testElement.appendChild(testbutton);

基本上,当页面加载“工作”警报时会触发,但是当我点击按钮时则不会 . 我也没有得到控制台反馈 . 我错过了什么?

1 回答

  • 4

    那是因为你在页面加载时调用警报,而不是点击,你可能也想要一个匿名函数

    var testbutton = document.createElement("button");
    
    testbutton.addEventListener('click', function() {
        alert("Working");
    }, false);
    
    testbutton.id = "testbutton";
    testbutton.innerHTML = "This is a button";
    
    testElement.appendChild(testbutton);
    

    无论何时将括号添加到函数中,都会立即调用它,在事件上调用函数,您只想引用它,这里有一些例子

    addEventListener('click', alert("Working"), false); // called immediately
    
    addEventListener('click', alert, false);            // called on click
    
    addEventListener('click', function() {}, false);    // called on click
    
    addEventListener('click', function() {
       alert();
    }, false);    // called on click
    

相关问题