0

このチュートリアルに基づいて、FF 2.0 拡張機能である Firefox 拡張機能を開発しています (チュートリアルの 2 番目の部分は、この URLにあります) 。

重要な主なことは、それが使用することです

<iframe id="contentview" src="http://www.ibm.com/developerworks/web" flex="2"/>

バックエンド コードで [GO] ボタンをクリックすると、次のようになります。

contentview.contentDocument.location.href = urlbox.value;

//Use Firefox XPath to get the raw text of the document
var doctext = contentview.contentDocument.evaluate(
    "string(.)", document, null, XPathResult.STRING_TYPE, null).stringValue;

xpath でエラーが発生しますが、それは私の質問ではありません。私が FF 3.0 で抱えている問題は、contentDocument の値が、href-change によって読み込まれたサイトではなく、読み込まれた古いサイトを参照していることです。

だから私の質問は、どうすれば同様のウィンドウを作成できますが、ロードされたドキュメントが完了すると誰かに通知され、その DOM にアクセスできるようになりますか?

4

1 に答える 1

2

更新: 最初にウィンドウのロード イベントを処理する必要があり、次に iframe 要素にイベント リスナーを追加します。

window.addEventListener("load",Listen,false);
function Listen()
{
  var frame = document.getElementById("contentview");
  frame.addEventListener("DOMContentLoaded", DomLoadedEventHandler, true);          
}

    function DomLoadedEventHandler() {
    var frame = document.getElementById("contentview");
    alert(frame.contentDocument.location.href);
    }

「DomLoadedEventHandler」をイベント ハンドラー名に置き換えます。

Mozilla の公式サイトを見て、Firefox の拡張機能に関するすべてを学ぶことをお勧めします。

http://developer.mozilla.com

于 2009-05-07T15:31:59.667 に答える