2016-10-02 11 views
3

window.postMessage APIを使用して、子ドキュメント(iframe)から直接の親に簡単なメッセージを送ろうとしています。window.postMessageがiframeから親文書に変換されない

window.addEventListener("message", receiveMessage, true); 
var receiveMessage = function(event) { 
    console.log("Recieved event " + JSON.stringify(event)); 
} 

その後、私は次のようしているiframe内:

window.parent.postMessage('message', '*'); 

を私が読んだすべてのものに基づいて、これは仕事と私のすべきである私は、次のいる親ドキュメント内

ログメッセージをコンソールに書き込む必要があります。それがうまくいかないことを除いて。

私は*をtargetOriginとして使用することは必ずしも安全ではないことを認識していますが、この時点ではリンケージを整理したいだけです。

私が紛失しているアイデアや何かが明らかですか?

+0

この文脈で意味は何を「動作しない」のでしょうか?エラーメッセージはありますか? – Frxstrem

+0

'iframe'要素に' message'イベントハンドラがありますか? 'post'Message()は' parent'ウィンドウで呼び出されますか? – guest271314

+0

あなたの質問に本当に書いたことがあるならば、 'receiveMessage'はあなたがあなたのイベントハンドラとしてそれを添付するとき、まだ未定義です。手続きの前に宣言するか、 'function receiveMessage(){}'表記を使用してスクリプトの最上部で定義されます。 – Kaiido

答えて

0

コールバック関数receiveMessage()と宣言されていることを確認してから、addEventListenerメソッドに渡します。ここで

は、あなたの改訂親スクリプトさ:

var receiveMessage = function(event) { 
    console.log("Recieved event " + JSON.stringify(event)); 
} 
window.addEventListener("message", receiveMessage, true); 
関連する問題