ホームページ >ウェブフロントエンド >jsチュートリアル >別のドメインから iFrame のコンテンツにアクセスするにはどうすればよいですか?
クロスドメイン iFrame アクセス: 解決策
別のドメインから iFrame のコンテンツにアクセスしようとすると、 「プロパティへのアクセス許可が拒否されました」エラー。この問題は、セキュリティ上の理由からドメイン間のデータ交換を制限するブラウザのクロスドメイン ポリシーが原因で発生します。
この制限を克服するには、両方のフレーミング サイトを制御できる場合に使用できる postMessage メソッドを使用できます。そして iFrame のコンテンツ。このメソッドを使用すると、異なるドメイン間でメッセージを送受信できます。
実装例は次のとおりです:
フレーム化されたサイト (iframe.net):
<script> window.onmessage = function(event) { event.source.postMessage(document.body.innerHTML, event.origin); }; </script>
メインページ(example.com):
<script> window.onmessage = function(event) { alert(event.data); }; </script> <!-- Trigger the message sending --> <iframe>
document.getElementById('myframe').contentWindow.postMessage('', '*');
postMessage メソッドは、送信するメッセージとターゲットのオリジン (メッセージを受信するドメイン) の 2 つの引数を取ります。この例では、メッセージをどのドメインでも受信できることを示すために「*」を使用しています。
このコードが実行されると、iFrame の本文を含むメッセージがフレーム化されたサイトからメインに送信されます。ページのアラート ボックスに表示されます。これは、クロスドメイン ポリシーをバイパスし、postMessage メソッドを使用して 2 つのドメイン間でデータを交換する方法を示しています。
以上が別のドメインから iFrame のコンテンツにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。