Firefox附加组件:将内容脚本注入iframe,src为“about:blank”

时间:2015-01-07 09:02:46

标签: firefox firefox-addon firefox-addon-sdk

我们正在开发一个加载项,并希望将内容脚本注入首页和所有框架。但是我们发现内容脚本无法通过src注入iframe,如“about:blank”“javascript:...”

有任何意见/建议吗?

示例page-mod:

require("sdk/page-mod").PageMod({
            include:["*", "file://*"],
            contentScriptFile: [
                "./content/content.js",
            ],
            attachTo: ["existing","top", "frame"],...

3 个答案:

答案 0 :(得分:1)

我想更新一个由我的队友Wayland发现的有趣事实:

有趣的是,如果我们按照以下方式构建iframe,它将会起作用:

就像我们通过调用' document.write '来刷新iframe内容一样。

function buildme() {

  var iframe = ...;
  iframe.contentDocument.open();
  iframe.contentDocument.write("<html><body></body></html>");
  iframe.contentDocument.close()

  var child = iframe.contentDocument.craeteElement("..");
  ...
  iframe.contentDocument.body.appendChild(child);
}

< iframe id = "myframe"
onload = "buildme();" / >

答案 1 :(得分:1)

答案 2 :(得分:0)

试试这个:

require("sdk/page-mod").PageMod({
        include:["*", "file://*", "about:blank", "javascript:*"],
        contentScriptFile: [
            "./content/content.js",
        ],
        attachTo: [[b]"existing","top", "frame"[/b]],...