所以我正在构建一个自定义的firefox扩展,
我的问题是,如果我想使用此扩展程序将有关当前页面上的图像的信息发送到远程服务器,我将如何编写javascript以便它可以获取当前文档中的图像?
一般来说,如何从附加到自定义firefox扩展的javascript访问当前页面/文档中的任何HTML内容?
答案 0 :(得分:1)
如果您的扩展程序在浏览器覆盖中加载其JavaScript代码,则它可以访问全局gBrowser
变量(<tabbrowser>
tag)。要访问当前所选标签中加载的文档,请使用gBrowser.contentDocument
。要获取所有图片的网址:
var images = gBrowser.contentDocument.getElementsByTagName("img");
var urls = [];
for (var i = 0; i < images.length; i++)
urls.push(images[i].src);
请注意,这只会为您提供<img>
代码。你不会得到<input type="image">
这样的东西,你也不会在CSS样式表中定义图像。如果您想要更完整的列表,您应该查看“页面信息”对话框的工作方式:http://hg.mozilla.org/mozilla-central/file/2bb8c0b664cf/browser/base/content/pageinfo/pageInfo.js#l614。正在为函数processFrames()
中的所有元素调用此函数,该元素使用TreeWalker查看所有元素。