我需要获取作为字符串加载的当前页面的html,以便我可以操纵它并稍后使用该信息。我需要在Firefox扩展程序中使用它,并且在使其正常工作方面遇到很多麻烦。

我最初尝试使用.outerHTML存储值,该值我已经看到并可以在其他地方使用。这是一个工作原理的示例:

var pageHTML = document.documentElement.outerHTML;


我还尝试仅搜索当时所需的零件,例如:

document.getElementById("header")


但是,这些似乎都无法访问HTML。我认为这是因为代码在浏览器中而不是在文档本身中运行。如何从Firefox扩展程序访问选项卡中加载的页面的HTML“文档”。

最佳答案

Firefox插件SDK包含一个名为page-mod的模块,旨在用于此目的。在page-mod下运行的内容脚本将在网页的上下文中运行,而不是在典型的沙盒上下文中运行。

从该页面的文档中:


  您可以在脚本中修改文档:

var pageMod = require("sdk/page-mod");

pageMod.PageMod({ include: "*.mozilla.org",
                  contentScript: 'document.body.innerHTML =' +
                                 '"<h1>Page matches ruleset</h1>";'
});

09-26 13:47