2011-04-21 68 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); 

工程確定,在每一頁上。