1

アプリのポップアップ ウィンドウに ajax スタイルのフォームがあります。ターゲット iframe を含むフォームを使用し、iframe.load() 関数でコンテンツを取得してポップアップに表示します。

これは IE9、Chrome、Firefox で動作します:

 $("iframe[name=addpart-iframe]").load(function () {
            //FF and IE fire the load when the popup first load, chrome does not. This kips the first onload where no submit has happened yet
               if (firstLoad == true) {
                   firstLoad = false;
                   return;
               }


               var response = this.contentDocument.body.innerHTML;
               $("#AddForm").html(response);


           });       

IE7を除いて、これはうまく機能します。this.contentDocument.body を見ると、デバッガーは body が有効なプロパティではないと言っています。外側の HTML を見ると、この時点で iframe も空です。理由がわからない!

4

1 に答える 1

2

プロパティは、iframe 内のcontentDocumentドキュメント要素を参照します (これは と同等ですcontentWindow.document) が、IE8 より前のバージョンの Internet Explorer ではサポートされていません。

IE 8 より前のバージョンでは、contentWindowプロパティを使用できます。

var response;

if (this.contentDocument) {
    response = this.contentDocument.body.innerHTML;
} else {
    response = this.contentWindow.document.body.innerHTML;
}
于 2012-07-25T15:14:44.943 に答える