在chrome扩展中使用javascript事件

Using javascript events in a chrome extension

本文关键字:javascript 事件 chrome 扩展      更新时间:2023-09-26

如何将事件附加到chrome扩展弹出窗口上的按钮?我读过这个https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution但仍然无法使其发挥作用;脚本只执行了一次"真棒"功能,然后我的按钮什么也不做。

PD:我是Javascript和Chrome扩展的初学者,所以我不确定我到底在哪里做错了什么。如果可以的话,我会添加两个标签。

编辑:我为我的扩展添加了代码,尽管与developerchrome链接中的示例几乎相同。

popup.html

<!doctype html>
<html>
  <head>
    <title>Getting Started Extension's Popup</title>
    <script src="creatediv.js"></script>
  </head>
  <body>
  <button id="aaaa">something</button>
  </body>
</html>

creatediv.js

document.addEventListener('DOMContentLoaded', function () {
    document.getElementById('aaaa').addEventListener('click', loadDiv());
});
function loadDiv(){
    var myDiv = document.createElement("div");
    document.documentElement.appendChild(myDiv);
    myDiv.id = "mydiv";
    myDiv.innerHTML = "asdf";
    alert(123);
    return false;
};

当我点击扩展图标时,loadDiv函数就会执行:我得到一个带有123的窗口警报,然后一个带有"asdf"的div被调用到popup.html。按钮"something"什么都不做。

应该是:

document.getElementById('aaaa').addEventListener('click', loadDiv);

这在事件触发时执行loadDiv,而在添加侦听器时代码执行loadDiv