如何在后台加载文档?

时间:2012-06-26 07:06:56

标签: firefox-addon

我正在尝试编写一个Firefox扩展程序,通过预加载序列项,预处理它们并根据请求显示来加快浏览页面序列。

有没有办法在特权扩展代码的后台加载和处理任意网页的DOM(在当前打开的同一网站上)?

理想情况下,文档的javascript应该像普通浏览器窗口一样工作。我怀疑这需要一个隐藏的窗口。那个javascript的上下文不应该是特权。 加载应该允许用户在所有可见的浏览器窗口中继续正常浏览。

我不喜欢将iframe注入当前打开的文档并使其可选的可见性(Webcomic reader userscript使用的原则)

3 个答案:

答案 0 :(得分:2)

从附加SDK中,page-worker模块可能接近您所需的模块:

  

页面工作者模块提供了一种创建永久不可见的方法   页面并访问其DOM。

那就是说,我不知道是否可以将该不可见页面加载到(当前或新的)选项卡/窗口中。您可能能够替换页面工作者的当前选项卡document.body。有可能。如果这是合法的。

答案 1 :(得分:0)

您可以使用轻量级浏览器扩展程序收集页面上的所有链接,并使用链接标记为每个链接预取内容,浏览器将在后台加载这些页面:https://developer.mozilla.org/en/Link_prefetching_FAQ

OR

如果您需要预加载页面并可以从扩展区访问其DOM,则可以使用附加SDK中的Page Worker API:https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/packages/addon-kit/docs/page-worker.html

答案 2 :(得分:-1)

我相信。假设您的javascript已在运行

var doc = gBrowser.selectedBrowser.contentDocument;

将获取已加载标签的文档,然后您可以处理它并按照您的需要进行操作。在后台执行并保持应用程序响应是一个不同的故事:)