我正在编写一个简单的Chrome插件,旨在从某个网站删除DOM元素。
的manifest.json
{
"name": "bla",
"version": "1.0",
"description": "bla",
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["myscript.js"]
}
],
"permissions": [
"tabs",
"http://*/*"
]
}
myscript.js
window.onload = start;
function start()
{
var ads = document.getElementById("left_ads");
ads.parentNode.removeChild(ads);
alert("bla");
}
当我加载目标页面时,一切都很完美:div id =“left_ads”已按预期删除。但是,当我点击指向同样具有类似div id =“left_ads”的页面的链接时,我的脚本无法正常工作。我知道我可能应该选择其他一些事件,而不是window.onload(),但是哪一个?
提前致谢!
答案 0 :(得分:0)
事实证明我找到了解决方法。我使用了后台html文件。 所以,插件现在看起来像这样:
的manifest.json:
{
"name": "bla",
"version": "1.0",
"description": "bla",
"background_page": "background.html",
"permissions": [
"tabs",
"http://*/*"
]
}
background.html:
<html>
<script>
chrome.tabs.onUpdated.addListener(start);
function start(tabID, changeInfo, tab)
{
chrome.tabs.executeScript(null, { file: "myscript.js" })
}
</script>
</html>
myscript.js:
var ads = document.getElementById("left_ads");
ads.parentNode.removeChild(ads);
每页都可以正常工作。