2017-05-06 62 views
0

我想創建一個Chrome擴展,在後臺訪問一個網站,從加載的頁面獲取一個元素,然後根據該元素更改徽章文本。在Chrome擴展中獲取阿賈克斯加載的元素

到目前爲止,我有這background.js:

function updateIcon(text) { 
    chrome.browserAction.setBadgeText({"text": text}); 
} 

chrome.browserAction.onClicked.addListener(function() { 
    $.get(link, function(data) { 
     myText = $(data).filter("#myElement").html() 
     updateIcon(myText); 
    }); 
}); 

這完美的作品我的test.html頁:

<html> 
    <button id="myElement">Test</button> 
</html> 

但正如我最近發現,它之所以在我打算使用它的頁面上不起作用是因爲「myElement」通過ajax加載,並且不在頁面加載的dom中。即使通過ajax進行加載,是否有任何獲取該元素的方法?現在我的代碼返回一個「未定義」的值。

+0

您需要將頁面加載到iframe或非活動選項卡中,並讓內容腳本訪問其DOM。或者,您可以嘗試檢查站點代碼並手動重現其AJAX請求。 – wOxxOm

+0

謝謝你的回答。我成功複製了該網站的AJAX請求。 – Pred

回答

0

最後,我遵循wOxxOm的建議並轉載了網站的AJAX請求,並且它工作正常。謝謝。