javascript - 事件不会在内容脚本 Chrome 扩展程序上触发

标签 javascript jquery html google-chrome google-chrome-extension

我正在构建一个 content scripts Chrome 扩展。我在网页上动态添加了一个按钮,但是此按钮上的事件监听器不会触发。

这是manifest.json:

{
  "manifest_version": 2,
  "name": "my extension",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "activeTab"
  ],
  "content_scripts": [
      {
        "matches": ["http://127.0.0.1:8000/*"],
        "js": ["jquery.js", "script.js"],
        "run_at": "document_end"
      }
  ]
}

这是script.js:

document.body.style.backgroundColor = "yellow";
var button = $('<input id="btn" type="button"/>');
$("body").append(button);  

$("#btn").on("click", function(){
    document.body.style.backgroundColor = "red"; 
});

按钮被添加到页面中,背景变成黄色,但点击按钮时没有变成红色。

最佳答案

如果怀疑问题与按钮 ID 有关 - 请注意,您根本不需要该 ID。

document.body.style.backgroundColor = "yellow";
var button = $('<input id="btn" type="button"/>');
$("body").append(button);  

button.on("click", function(){ // Notice you don't need to search for it again!
    document.body.style.backgroundColor = "red"; 
});

但是,在这种情况下,您需要保留 button 变量才能再次找到它。

关于javascript - 事件不会在内容脚本 Chrome 扩展程序上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36172895/

相关文章:

javascript - 无法捕获 HTML 字符串中元素的单击事件

javascript - 如何隐藏动态 div,除非所有 div 都有特定的类 - algolia

html - 当链接文本跨越多行时,最小化 <a> 链接行之间的空间

javascript - 如何显示由 Javascript 生成的一些 HTML

PHP 返回 JS UTC 日期格式

javascript - 在 JSDoc 中将对象数组记录为回调函数的参数

javascript - 如何清除 JavaScript 中函数的超时?

jquery - 将文本添加到一系列标签

javascript - Bootstrap v4 切换下拉菜单在本地不起作用,但在公共(public)站点上有效

javascript - 无法将文本绑定(bind)到 VueJS 模板中的 href 属性