簡體   English   中英

獲取頁面源鑲邊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM