2012-06-14 5 views
5

사용자가보고있는 페이지에서 데이터를 가져 와서 해당 데이터를 확장 프로그램 팝업으로 보내려고합니다. 현재 페이지에서 정보를 추출하는 데 문제가 있습니다. Google 코드 자습서를 검토 한 후 아래에 표시된대로 매니페스트 및 콘텐츠 스크립트를 설정합니다. id = "comments"가 포함 된 테스트 페이지로 이동하면 삽입 된 내용 스크립트의 변수가 항상 null로 끝납니다. 아무도 내가 누락 될 수있는 것을 안다? 감사!Chrome 확장 콘텐츠 스크립트가 삽입 된 페이지의 DOM에 액세스하지 않습니다.

manifest.json 
================= 
{ 
    "name": "Sample Extension", 
    "version": "0.0.1", 
    "description": "Sample extension", 
    "icons": {"128": "icon.png"}, 
    "permissions": [ 
     "tabs", "<all_urls>" 
    ], 
    "browser_action": { 
     "default_icon": "browseraction.png", 
     "default_title": "Sample", 
     "popup": "popup.html" 
    }, 
    "content_scripts": [ 
     { 
      "matches": ["http://*/*", "<all_urls>" ], 
      "js": ["scripts/contentscript.js"] 
     } 
    ] 
} 

contentscript.js 
=================== 
var comments = document.getElementById("comments"); 
alert(comments.innerText); 

답변

6

스크립트 실행 후 주석이로드 될 수 있습니다.

 "run_at" : "document_end", 

을 또는 당신이 AJAX 로딩 의심되는 경우, 나중에 setTimeout와 코드를 호출 :

는 매니페스트에이 설정하려고합니다.

물론 최상의 구성표는 정확한 페이지와 내부 작동에 달려 있습니다.

+1

+1하지만 그는 아마도'textContent'를 사용해야합니다. –

+0

고마워, 얘들 아! "run_at"및 "textContent"를 사용하여 두 가지 제안을 모두 활용했으며 완벽하게 작동했습니다. – sojo2600

+0

'innerText'는 Chrome 확장 프로그램 개발자 가이드에서 옹호되었습니다. - 여기서 그것을 피할 필요가 없습니다. –

관련 문제