2012-06-14 119 views
5

我試圖從用戶正在查看的頁面拉出數據並將該數據發送到擴展彈出窗口。我在從當前頁面提取信息時遇到了麻煩。在審查了谷歌代碼教程後,我設置了我的清單和內容腳本,如下所示。當我進入一個測試頁面,其中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

在Chrome擴展開發者手冊中提倡'innerText'。 - 沒有必要在這裏避免它。 –

相關問題