1

Firefox アドオンを使用して、最初の子の前に現在のドキュメントの本文に iframe を追加しようとしています。

私がやっていること:

  • アドオンが現在の URL ドメイン名を読み取る
  • ドメイン名を個人サーバーに送信
  • サーバー 次に、それぞれのコンテンツが入力された本文に iframe を挿入します

考えられるすべての Mozilla ドキュメントを読みましたが、現在の Web ページに 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

投稿したコードは、DOM コンテンツにアクセスできない lib/main.js ファイルに属しているようです。そのため、ドキュメントオブジェクトがないため、 document.domainにもdocument.createElementにもアクセスできません。DOM コンテンツにアクセスするには、 Content Scriptを使用する必要があります。この場合、 PageMod に関連付けられたスクリプトを次のように使用します。

lib/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") 
});

data/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 に答える