2012-03-25 2 views
21
내가 완전히 같은 를로드 할 때 크롬 브라우저 페이지의 내용에 일부 값을 확인 할

if(document.body.innerText.indexOf("Cat") !=-1) 

하고 때 나는 수표를 만들 수 있습니까? 나는 "Background.html"및 "콘텐츠 스크립트"에 대한 몇 가지 일을 읽을 수는 있지만 내가 "run_at": "document_idle"에서

답변

48

Register a content script in the manifest file을 (기본값)와 콘텐츠 스크립트 파일에 코드를 삽입 할 수없는 나에게 분명한 예 을 적어주세요 . 그런 다음 페이지가 준비되면 스크립트가 실행됩니다.

페이지가 완전히로드되었는지 여부를 백그라운드 페이지에서 감지하려면 을 호출하여 chrome.webNavigation.onCompleted 이벤트를 사용하고 컨텐츠 스크립트를 실행하는 등 원하는 작업을 수행하십시오. 이 방법은 URL 목록이 동적이거나 match pattern 구문을 사용하여 URL 패턴을 설명 할 수없는 경우 이전 방법보다 유용 할 수 있습니다.

chrome.webNavigation.onCompleted.addListener(function(details) { 
    chrome.tabs.executeScript(details.tabId, { 
     code: ' if (document.body.innerText.indexOf("Cat") !=-1) {' + 
       '  alert("Cat not found!");' + 
       ' }' 
    }); 
}, { 
    url: [{ 
     // Runs on example.com, example.net, but also example.foo.com 
     hostContains: '.example.' 
    }], 
}); 

webNavigation와 호스트 권한, manifest.json에 예를 들어 설정해야합니다 :

{ 
    "name": "Test", 
    "version": "1.0", 
    "background": { "scripts": ["background.js"] }, 
    "permissions": [ "webNavigation", "*://*/*" ], 
    "manifest_version": 2 
} 
+0

감사 롭 W를,하지만 체크 문 다음 코드를 많이 가지고 난 후에 쓸 수 없습니다 "code : '"함수를 호출 할 수 있습니까? – JustMe

+2

@ user1291538 확장자 내에서 별도의 파일에 넣고'code '대신'file :'nameoffile.js '를 사용하면됩니다 :'... ''- [링크 된 문서] (http : //code.google.com/chrome/extensions/tabs.html#method-executeScript). –

+0

@ 잰, 그것은 "manifest_version"입니다 : 2. 아닙니다. – Dudi