0
私のドメインのサブドメインには、例えばfile.html
と呼ばれるhtmlファイルがあります。それには<script src="https://example.com/script.js">
も含まれています。JS postMessageは機能しません
次に、このscript.js
は、以下のように見えるこのHTMLと接続され、いくつかのリスナー、また親にメッセージを送信する機能、持っている:src
私はiframe
を持っている別のドメイン上で、その後
v.sendMessageToParent = function (message) {
var jsonMessage = {
action: message
};
var win = window.frames.target;
win.postMessage(jsonMessage, '*');
};
v.sendActionMessageToParent = function (action) {
var jsonMessage = {
action: 'action',
type: action
};
var win = window.frames.target;
win.postMessage(jsonMessage, '*');
};
をfile.html
です。
この別のドメインにはまた、<script src="example.com/main.js">
があります。script.js
から送信されたメッセージを聞くには、main.js
が必要です。 main.js
で
私はこのコードを持っている:
if (window.addEventListener) {
window.addEventListener("message", messageHandler);
} else {
window.attachEvent("onmessage", messageHandler);
}
function messageHandler(event) {
console.log(event.data);
}
をしかし、私は何も得ることはありません。 JS、ドメインやその他のエラーは表示されず、コンソールには表示されません。
どこが間違っていますか?
を - 現在のウィンドウの直接のサブフレームをリスト、配列のようなオブジェクトである、ウィンドウ自体を返します。 。だから、この建設window.frames.targetは何ですか? –
私はちょうどどこかからこの関数を取ったので、... window.parent.postMessageに変更しようとしましたが、 – Coffee