OnClick 事件在我的 chrome 扩展程序中不起作用

OnClick event doesn't work in my chrome extension

我做了一个小扩展,将按钮插入 html 页面,并且我在每个按钮上插入了 onClick 事件,但是当我按下它们时它们不起作用。我在这个网站上找到了一些主题,有人在谈论 addEventListener,但我无法使用它。我的代码是这样的:

var setButton = "<button type='button' id='setter2' onclick=Set_one(this.id)>set</button>";
var str = getRow.insertCell(-1);
str.innerHTML = setButton;

在 Chrome 个扩展中,内联代码是 forbidden. You cannot use onclick attribute at all for extension scripts, and CSP cannot be relaxed

您必须使用 addEventListener 才能使其正常工作。这并不难,并且在上面链接的文档中有所介绍。

var setButton = "<button type='button' id='setter2' onclick=Set_one(this.id)>set</button>";
var str = getRow.insertCell(-1);
str.innerHTML = setButton;
document.getElementById("setter2").addEventListener("click", function() {
  Set_one(this.id);
});

如果您不使用 innerHTML 赋值并直接使用 create/append 元素,那就更好了:

var setButton = document.createElement("button");
    setButton.textContent = "set";
    setButton.id = "setter2";
    setButton.addEventListener("click", function() {
      Set_one(this.id);
    });
getRow.insertCell(-1).appendChild(setButton);