如何跟踪页面更改(Chrome Context Script插件)?

时间:2011-04-21 08:42:17

标签: javascript javascript-events google-chrome-extension

我正在编写一个简单的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(),但是哪一个?

提前致谢!

1 个答案:

答案 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);

每页都可以正常工作。