0

私のiframeがロードされると、iframeがまだそこにある間に別のコンテンツ(ヘッダー、フッター)をロードする親ページが必要です。iframe に追加しました:

window.top.location = "http://mysite.com";

新しい親ページをロードしますが、何度もリロードします。1 つのロード/iframe ロード、またはいくつかのソリューションのみを有効にするにはどうすればよいですか。

私は試してみました

window.onload = function() {
if(!window.location.hash) {
    window.location = window.location + '#loaded';
    window.location.reload();
}

}

しかし、それは何もしません。

ありがとうございました。

4

1 に答える 1

0

iframeをリロードせずにiframeの親だけをリロードすることはできません!親ページの一部のコンテンツを変更する場合は、iframeではなく親ページのjavascriptを使用して変更する必要があります。また、「iframeが読み込まれたイベント」をキャッチする場合は、iframe内から実行する必要があります。不可能な状況のように見えますが、それでも可能です。

iframeと親ページを通信させる必要があり、html5 postmessageでそれを行うことができます(親とiframeが異なるドメインにある場合でも機能します!)。IE7との互換性も必要な場合は、postMessageの代わりにeasyXDM javascriptライブラリを使用できます。たとえば、そのサイトで検索してください。

jQuery(document).ready()(または同様のイベント)がトリガーされたときにiFrameからpostMessageを実行するだけで、親ページには、ヘッダー/フッター/その他の変更イベントをトリガーするためにこのメッセージを待機するリストナーが必要です。

于 2013-03-11T11:36:54.400 に答える