2011-04-21 93 views
0

我正在写一个简单的Chrome插件,旨在从某个站点中删除DOM元素。如何跟踪页面更改(Chrome上下文脚本插件)?

的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

事实证明我找到了解决方案。我使用了背景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); 

工程确定,在每一页上。