javascript - 单击事件在文档加载时触发 Tampermonkey

标签 javascript tampermonkey

我正在编写一个 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);

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

最佳答案

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

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

关于javascript - 单击事件在文档加载时触发 Tampermonkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29348451/

相关文章:

javascript - 让弹出框显示在屏幕中间

javascript - Fullcalendar Rails 上的 Popover Bootstrap

Javascript InsertBefore - 在父 div 中的不同 div 中

javascript - 自动点击包含特定文本的按钮的方法?

javascript - 用于删除网站上部分 img href 的脚本

JavaScript/jquery 获取元素上方的同级元素

javascript - 使用单一功能全屏制作多张图片

javascript - JavaScript 中的 ParseFloat 函数

javascript - 如何读取嵌套的 innerHtml 并将背景添加到父级?

javascript - Tampermonkey,等待在另一个选项卡操作系统中设置可以读取的值