2012-07-13 6 views
1

스크립트를 실행하기 전에 차단하는 Chrome 확장 프로그램을 만들려면 triyng입니다.Chrome 확장 프로그램은 본문로드가 완료되기 전에 자바 스크립트를 삽입합니다.

script 태그는 head 태그가 아니라 body 태그에 있습니다.

그렇게 할 수 있습니까?

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

}] 

을 그리고 내 스크립트는 이것이다 :의 manifest.json

것은이 같은 content_scripts을 설정 한

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) run_at''를 통해, document_start''에서 실행되어 있는지 확인합니다. 'beforeload' 확장 이벤트에 대한 문서는 http://stackoverflow.com/q/4395525를 참조하십시오. –

관련 문제