コメント:クロスドキュメントメッセージの送信を実現する場合は、まずウィンドウオブジェクトのメッセージイベントを聞いてから、ウィンドウオブジェクトのpostmessage()メソッドを使用して他のウィンドウにメッセージを送信する必要があります。次に、詳細に紹介しましょう。興味のある友達はそれを参照できます。
ウィンドウオブジェクトのメッセージイベントを聞いてくださいwindow.addeventlistener( "message"、function(event){
//プログラムコードを処理します
}、 間違い);
ウィンドウオブジェクトのpostmessage()メソッドを使用して、他のウィンドウにメッセージを送信します。この方法の定義は次のとおりです。
otherwindow.postmessage(message、targetorigin);
このメソッドは2つのパラメーターを使用します。最初のパラメーターはメッセージ送信されたメッセージテキストですが、任意のJavaScriptオブジェクト(オブジェクトはJSONを介してテキストに変換されます)にすることもできます。 2番目のパラメーターは、メッセージを受信するオブジェクトウィンドウのURLアドレスです。 WildCard *を使用して、URLアドレス文字列のすべてのアドレスを指定できますが、正確なURLアドレスを使用することをお勧めします。 AntherWindowは、送信されるウィンドウオブジェクトへの参照です。 Window.open()メソッドを介してオブジェクトを返すことも、シーケンス番号(インデックス)または名前をWindow.Frames Arrayに指定して、単一のフレームに起因するウィンドウオブジェクトを返すことができます。
例
<!doctype html>
<html>
<head>
<Meta charset = "utf-8"/>
<title>クロスドキュメントメッセージ転送用の主なドキュメントのサンプル</title>
<script type = "text/javascript" src = "http://code.jquery.com/jquery-1.6.4.min.js"> </script>
<script type = "text/javascript">
$(function(){
//メッセージイベントを聞きます。
window.addeventlistener( "message"、function(event){
//指定されたURL以外のページで送信されたメッセージを無視します。
if(event.origin!= "http://www.blue-butterfly.net")return;
アラート(event.data); //メッセージを表示します。
}、 間違い);
$( "#iframecontent")。load(function(event){
//サブページにメッセージを送信します
this [0] .postmessage( "hello"、 "http://www.blue-butterfly.net/test/");
});
});
</script>
</head>
<body>
<ヘッダー>
クロスドメイン通信のセクション</h1>
</header>
<iframe src = "http://www.blue-butterfly.net/test/"> </iframe>
</body>
</html>
サブページのコードは次のとおりです。
<!doctype html>
<html>
<head>
<Meta charset = "utf-8"/>
<script type = "text/javascript" src = "http://code.jquery.com/jquery-1.6.4.min.js"> </script>
<script type = "text/javascript">
$(function(){
window.addeventlistener( "message"、function(event){
if(event.origin!= "http:// lulingniu")return;
$( "#console")。append(event.origin).append( "message from:").append(event.data);
//メインページにメッセージを送信します。
event.source.postmessage( "こんにちは、" + this.location、event.origin);
}、 間違い);
});
</script>
</head>
<body>
<p>これがiframeにあるものです。 </p>
<div> </div>
</body>
</html>
•ウィンドウオブジェクトのメッセージイベントを聞くことで、メッセージを受信できます。
•メッセージイベントのOriginプロパティにアクセスすることにより、メッセージの送信ソースを取得できます(この例では、メインページの送信ソースは、サブページの送信ソースはです)。注:送信ソースとWebサイトのURLアドレスは同じ概念ではありません。送信ソースには、ドメイン名とポート番号のみが含まれます。他のソースから悪意を持って送信されたメッセージを受信しないためには、送信ソースを確認するのが最善です。
•メッセージイベントのデータ属性にアクセスすることにより、メッセージコンテンツを取得できます(JSONを使用してJavaScriptオブジェクトにすることができます)。
•PostMessage()メソッドを使用してメッセージを送信します。
•メッセージイベントのソースプロパティにアクセスすることにより、メッセージソースのウィンドウのプロキシオブジェクトを取得できます。