2012-06-14 7 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 extension開発者マニュアルに提唱されています。 - ここでそれを避ける必要はありません。 –

関連する問題