4

私は、iframe で Web ページをホストするプロジェクトに取り組んでいますが、ホストの親 iframe は、c:\ などのローカル ディスク上の HTML ファイルにあります。内側のホストされたiframeがサーバー上にあります。2 つの Web ページは、互いにポストメッセージを送信する必要があります。

親 iframe (ローカル ディスク上) が内部 iframe のドメインを認識しているため、内部フレームにメッセージを送信しても問題はありません。

しかし、内側の iframe がメッセージを親の iframe に戻す必要がある場合、ローカル ディスク上にある親の iframe のドメインを提供する必要があります。

ローカル ディスク上にある親 IFrame にメッセージをポストするために、内側の HTML で次のことを試しました。

*var messageToSend = {
                        jsonrpc: "2.0",
                        result: [result]
                    };
window.parent.postMessage(JSON.stringify(messageToSend), "file://");*

// window.parent IFrame は、ローカル ディスクにある HTML ファイルです

しかし、ポストメッセージでドメインとして「file:」を使用して親 iframe に戻そうとすると、「引数が無効です」というエラーが発生します。

誰かが助けることができますか?「local disk html」のドメインは何にするべきですか? どんなヒントでも大歓迎です。

乾杯

4

1 に答える 1

6

「ファイル」の指定方法がわかりません、あまり意味がないので仕方がないのでしょう。オリジンの目的は、他の (おそらく悪意のある) ページがあなたのメッセージを見るのを防ぐことですが、オリジンがハードディスク上の任意のファイルである場合、フレーム付きの html ファイルを作成し、Web ページをあなたのサーバー。したがって、"file" を指定する (方法があったとしても) ことは、" * " を指定するよりも安全ではありません。

于 2011-03-31T04:31:51.600 に答える