1

我正在尝试在使用 Firefox Addon 的第一个孩子之前将 iframe 添加到当前文档的正文中。

我在做什么:

  • 插件读取当前URL域名
  • 发送域名到个人服务器
  • 服务器然后将 iframe 插入填充有相应内容的正文中

我阅读了所有可能的 Mozilla 文档,但我找不到任何关于将 HTML 元素插入当前网页的内容。我是 Firefox 开发的新手。

读取域名:

var domain = document.domain; //not working

我尝试使用以下代码插入 iframe:

var pageMod = require("sdk/page-mod");
 var ifrm =document.createElement('<iframe src=http://www.example.com/addon></iframe>');
pageMod.PageMod({
  include: "*.org",
  contentScript: 'document.body.insertBefore(ifrm, document.body.firstChild);'
});

问题:

  • 是否可以使用 Firefox 插件,或者我应该切换到 Firefox 扩展
  • 如何将 iframe 插入正文
4

1 回答 1

1

您发布的代码似乎属于您的 lib/main.js 文件,该文件无权访问任何 DOM 内容。这就是为什么你没有文档对象,所以你既不能访问document.domain也不能访问document.createElement。为了访问 DOM 内容,您需要使用Content Script,在您的情况下,以这种方式使用与 PageMod 关联的脚本:

库/main.js

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

pageMod.PageMod({
  include: "*.org",
  when: "ready",
  contentScriptFile: data.url("script.js") 
});

数据/script.js

var ifrm = document.createElement('iframe');
ifrm.setAttribute("src", "http://example.com/addon");
document.body.insertBefore(ifrm, document.body.firstChild);
于 2014-02-18T00:34:15.327 回答