2012-07-13 179 views
1

我三歲就創建了一個Chrome擴展程序,在腳本執行之前將其阻止。Chrome擴展程序在完成加載之前注入JavaScript

腳本標記位於主體標記中,而不是頭部。

有沒有可能這樣做?

manifest.json中

我已經設置content_scripts這樣的:

"content_scripts": [ 
{ 
    "run_at": "document_start", 
    "matches": ["http://website.it/*"], 
    "js": ["dojob.js"] 

}] 

而且我的劇本是這樣的一個:

var cont = 0; 

document.addEventListener("DOMNodeInserted", function(event){ 
     if(cont==0){ 
      alert(document.getElementsByTagName("script")[0].src); 
      document.getElementsByTagName("script")[0].src = ""; 
      cont++; 
     } 

}); 

但腳本仍然運行...

怎麼着我讓它工作?

回答

3

自從您製作src=""我認爲js是外部的。如果是這種情況,那麼你可以使用beforeload事件或webrequest api來阻止加載腳本。

function doBeforeLoad(event){ 
    if (event.srcElement.tagName=="SCRIPT" && event.srcElement.src=='test.js') { 
     event.preventDefault(); 
    } 
} 

document.addEventListener('beforeload', doBeforeLoad , true); 

http://code.google.com/chrome/extensions/webRequest.html

+0

確保[內容腳本](http://code.google.com/chrome/extensions/content_scripts.html)在'document_start'通過'run_at'執行。有關'beforeload'擴展事件的文檔,請參閱http://stackoverflow.com/q/4395525 – 2012-07-14 14:16:09

相關問題