chrome扩展页面修改onload

时间:2016-04-25 13:51:53

标签: google-chrome-extension onload

我已经找到了一个解决方案,可以在加载此页面后立即删除网页内容。

最简单的清单是:

{
  "manifest_version": 2,
  "name": "Remove WebPage",
  "description": "Remove WebPage",
  "version": "0.2",

  "content_scripts": [
    {
      "matches": ["http://www.webdomain.net/*"],
      "js": ["myscript.js"]
    }
  ],

  "permissions": [
    "tabs", 
    "http://*/", 
    "https://*/"
  ]
}

并且myscript.js文件是

document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);

function fireContentLoadedEvent () {
    document.body.textContent = "No data anymore";
}

看起来很简单,但这不起作用。

2 个答案:

答案 0 :(得分:0)

默认情况下,您的脚本会在 DOMContentLoaded触发后执行。因此,永远不会触发您的事件处理程序。

查看run_at parameter documentation

答案 1 :(得分:0)

正如Xan已经指出的那样,你的代码运行得太晚了。

您案例中的实际解决方案应为:

1)将"run_at": "document_end"添加到您的清单中,如下所示:

"content_scripts": [
    {
        "matches": ...,
        "js": ...,
        "run_at": "document_end"
    }
]

2)移除document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);并使用fireContentLoadedEvent()直接调用您的函数,或者将您的代码完全移出函数。