background.js頁面內容時,標籤在Chrome擴展名改成
var htmlcontent = null;
chrome.tabs.onUpdated.addListener(function() {
onWindowLoad();
alert(htmlcontent);
});
chrome.tabs.onHighlighted.addListener(function(){
onWindowLoad();
alert(htmlcontent);
});
function onWindowLoad() {
chrome.tabs.executeScript(null, {
file: "getPagesSource.js"
}, function() {
if (chrome.extension.lastError) {
htmlcontent = 'There was an error injecting script : \n' + chrome.extension.lastError.message;
}
});
}
chrome.extension.onMessage.addListener(function(request, sender) {
if (request.action == "getSource") {
htmlcontent = request.source;
}
});
getPagesSource.js
function DOMtoString(document_root) {
return document.body.innerText ;
}
chrome.extension.sendMessage({
action: "getSource",
source: DOMtoString(document)
});
我開發一個Chrome擴展。我能夠在重新加載當前窗口的正文內容,但是當我更改選項卡時,我無法獲取內容。前一個標籤的內容正在保存。我使用了錯誤的API嗎?或者當我在Chrome中更改標籤時,如何觸發onUpdate功能?
「更改標籤」我的意思是,切換之前加載的標籤。我需要使用哪些chrome API,以便chomre.tabs.executeScript可以在「CHANGED TAB」上執行?爲了提供更清晰的視圖,假設我在Chrome瀏覽器中加載了標籤1,2和3。目前我在標籤1中。當我切換到標籤2時,我需要捕捉到內聯文本。但在我的代碼中,當我切換到標籤2時,我得到了標籤1的innerText。我如何獲取已更改標籤的innerText而不是以前標籤的文本? – nikhil