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

时间:2015-04-19 17:50:38

标签: javascript google-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;

1 个答案:

答案 0 :(得分:0)

在Chrome扩展程序中,内联代码为forbidden。您根本不能使用onclick属性来扩展脚本和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作业并直接创建/追加元素,情况会更好:

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