获取页面源chrome扩展

时间:2013-01-17 17:08:09

标签: javascript html google-chrome

我目前正在开发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等)都已下载以获取页面的来源。

这是另一种制作类似的方式吗?谢谢。

1 个答案:

答案 0 :(得分:2)

等待逻辑移至清单:
 将清单文件中内容脚本的run_at属性设置为document_end

这将在加载DOM之后运行内容脚本,但之前加载任何子资源(例如图像)。

  

在“document_end”的情况下,在DOM完成之后立即注入文件,但是在加载了图像和帧之类的子资源之前。

     

- Google文档

在您的内容中,直接将HTML发送到您的后台脚本:

var html = document.documentElement.outerHTML;
chrome.extension.sendMessage(null, html);

但请注意,在页面中注入JavaScript可能会修改HTML,因此您最终可能会得到与浏览器中不同的HTML。

相关问题