2016-12-06 38 views
1

親ウィンドウから子iFrameへの通信に問題があります。しかし、反対側では、すべてが完璧に動作します。ここ は、私がのpostMessage機能を発射するために、CHIL iframeオブジェクトを取得する方法である:親から子へのpostMessageとの通信を行います。iFrame

私は、次の取得、彼はコンソールint型、それを印刷
var iFrame = document.getElementById('Frame').contentWindow; 

Window {parent: Window, opener: null, top: Window, length: 0, frames: Window…} 

とき私は次のようにpostMessage関数に進みます:

iFrame.postMessage("message", "http://contoso.com"); 

それは私にエラーを示していますrページを読み込むとき:iFrame.postMessageは関数ではありません。私は、コンソールでのpostMessageを実行すると は、私が間違って何をやっている未定義

を取得しますか?

+0

まだ両方のウェブサイトを管理する必要があります。あなたは 'contoso.com'を所有していますか? – zer00ne

+0

'contoso.com'にe.originを設定する必要があります。あなたはそのサイトを編集できるのですか?私が最後にチェックした時、MSはまだそれを所有していました。 – zer00ne

+0

投稿のために私のウェブサイトをcontoso.comに置き換えました。子iFrameのイベントリスナーで、e.originが正しく設定されています。私は、イベントオブジェクトを操作する直前にログを追加しましたが、それは決してその点に達しません。 –

答えて

1

以下のコードも動作します。

$('#id')[0].contentWindow.postMessage("hello world",targetOrigin);

jQueryのセレクタとのdocument.getElementByIdの差があります。

Document.getElementByIDはHTML DOMオブジェクトを返します。
jQueryセレクタがjQueryオブジェクトを返します。

詳細については、下記のリンクをご覧ください。 document.getElementById vs jQuery $()

関連する問題