1


0

Window.openリロードウィンドウ

レポートが含まれているiframeがあります。 また、window.open()呼び出しを使用して、ユーザーがiframe内でレポートをデタッチし、独自のウィンドウで開くことができる機能もあります。

私の問題は、デタッチボタンを押すと、iframeに最初に読み込まれたレポート全体が実際にクエリを再実行する動作を実際に通過するため、最終的にレポートが再び表示されるまでユーザーに白い画面が表示されることです。

とにかく、切り離されたウィンドウでレポートを再実行しない、または何らかの形でキャッシュバージョンを取得しないのですか?

ありがとう。

1 Answer


2


クライアント側にすでにHTMLがある場合は、サーバーに移動せずにポップアップウィンドウに書き込むことができます。

    var w = window.open();
    w.document.write("Text in new Window");

ウィンドウが開き、テキストが書き込まれます。 あとは、iframeからコンテンツを取得して、新しいウィンドウに書き込むだけです。 ビンゴ:)

ところでIMO:多くのブラウザがブロックし、ほとんどの自動UIテストツールがサポートしていないため、可能な限りブラウザで新しいウィンドウを開くことは避けてください。

編集(コメントへの応答):

jQuery JavaScriptライブラリを使用してiFrameを読み書きする例を次に示します。

    // Write to
    $("iframe").contents().find("body").html("Test Html")

    // Read from
    alert($("iframe").contents().find("body").html());

これは基本的にドキュメント内のiframe要素を見つけて、コンテンツを読み書きします。 JavaScriptライブラリを使用していない場合は、いずれかを学習して使用することを強くお勧めします。

ところで、ポップアップウィンドウに関する私のアドバイスは、iframeにも当てはまります。 可能な場合は使用しないでください。