4

任意の外部ドメインを指すiframeがありますhttp://Ahttp://Bユーザーイベントで別の外部ドメインに送信したい。

http://B読み込みが遅いと言います。を設定しただけiframe.src = "http://B"の場合、iframeは、完全にダウンロードされてレンダリングできるようになるAまで、コンテンツを保持します。Bユーザーが要求したため、これはユーザーを混乱させますが、表示されるのBは。だけですA

../html/loading.htmlドメインから、たとえばとの間でAページをロードしたいB。このページの読み込みは常に高速であると想定します。

設定iframe.srcが非同期であることを確認しました。次のコードを検討してください。

iframe.src = '../html/loading.html';
iframe.src = 'http://B';

これは開くことをスキップ../html/loading.htmlして、右に進みますhttp://B。(どれだけ速いloading.htmlか、どれだけ遅いBかに関係なく)。私もこれをやってみました:

iframe.src = '../html/loading.html';
iframe.contentWindow.location.reload();
iframe.src = 'http://B';

ただし、これはクロスドメインエラーをスローし、のにアクセスできないことを示しますcontentWindow(ロードされていないhttp://Aためloading.html、まだオンでhttp://Aあり、強制的にリロードすることはできません)。

iframeにURLの同期ロードを強制する方法はありますか?私はChrome拡張機能を書いているので、それを特定する必要がある場合も問題ありcrxません。

4

2 に答える 2

4

現在のURLの読み込みが完了したらすぐに次のURLを読み込みたいと思うでしょう。幸い、iframeには使用できるonloadイベントがあります。

あなたはこのようなことをしたいと思うでしょう:

iframe.src='../html/loading.html'
//load the next page after finishing loading the last one
iframe.onload=function(){iframe.src='http://B';}
于 2012-06-25T04:50:15.630 に答える
2

これを試して:

最初に、iframeは以下を使用してloading.htmlをロードする必要があります

    iframe.src = '../html/loading.html';

load.htmlのクライアント側のonloadイベントでは、ソースを使用して他のドメインBに変更する必要があります

    iframe.src = 'http://B';
于 2012-06-25T04:34:26.707 に答える