0

重複の可能性:
iframe の JS から親ドキュメントの Javascript 関数を呼び出すことは可能ですか?

ページがありmain.phpます。

これには、iframe が含まれていsrcますrandom.php

main.phpランダム関数をrandom()使用してスクリプトを作成し、その関数を使用するにはどうすればよいrandom.phpですか?

4

2 に答える 2

1

HTML5を使用している場合は、このpostMessage()関数を使用できます。

ここに素晴らしいデモがあります:

http://html5demos.com/postmessage

アップデート

アイデアはpostMessageiframewindowオブジェクトに対してであり、各ウィンドウは次のようにメッセージイベントをリッスンしています。

main.phpで:

window.addEventListener("message", function(e){
    var data = e.data; // data can be any object for example { type: 'random', payload: {}... }
    switch(data.type){
        case 'random':
            // do somthing here with the payload...
            break;
    }
});

iframe(random.php):

window.parent.postMessage({ type: 'random', payload: {...} });
于 2012-10-22T16:31:09.517 に答える
0

usingrandomを含むページで関数を呼び出すことができます。反対のことをしたい場合、つまり ( )内の関数を含むページから呼び出す場合は、代わりに を使用する必要があります。iframewindow.parent.random()iframe[DOM Reference to frame].contentWindow.random()

詳細についてwindow.parentは、Mozilla Developer wiki を参照してください。


が別のドメインにある場合、 Same Origin Policyrandom.phpのため、これを行うことはできません。その場合は、HTML5 を使用してページ間で情報を転送できます*。ただし、別のドメインの JavaScript の関数を直接呼び出すことはできません。postMessage

*ブラウザのサポート情報については、使用できますかを参照してください

于 2012-10-22T16:28:23.190 に答える