[英]Get page source chrome extension
我目前正在開發一個Chrome擴展程序,其中必須獲取頁面的HTML源代碼。 我目前正在使用Chrome Messaging。 這是我的源代碼:
background.js
chrome.webNavigation.onComplete.addListener(function(e) {
chrome.tabs.sendRequest(e.tabId, {
action: 'getSource'
}, function(r) {
console.log(r);
});
});
contentscript.js
chrome.extension.onRequest.addListener(function(request, sender, callback) {
if (request.action == 'getSource')
callback(document.documentElement.outerHTML);
});
這非常慢,因為我必須等待頁面中的每個數據(例如圖像,javascript等)都已下載才能獲取頁面的源代碼。
做這樣的事情是另一種方法嗎? 謝謝。
將等待邏輯移至清單:
→將清單文件中內容腳本的run_at
屬性設置為document_end
。
這將在加載DOM之后但在加載任何子資源(例如圖像) 之前運行內容腳本。
對於“ document_end”,文件在DOM完成之后但在子資源(例如圖像和框架)加載之前立即注入。
-Google文檔
在您的內容腳本中,將背景腳本直接發送給HTML:
var html = document.documentElement.outerHTML;
chrome.extension.sendMessage(null, html);
但是請注意,在頁面中注入JavaScript可能會修改HTML,因此最終可能會獲得與瀏覽器不同的HTML。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.