1

ボタンがクリックされたときに iframe を使用して、Web アプリケーションからファイルをダウンロードしました。

これが私のコードです:

    iframe = document.createElement("iframe");
    iframe.src = "Report/ExportFile.aspx";
    iframe.style.display = "none";
    document.body.appendChild(iframe);

親ページ (iframe を含むページ) で関数を呼び出して、読み込み中のアニメーションを停止したいと考えています。

iframe の読み込みがいつ終了するかを知る必要があり、それを停止するために保存/開くダイアログが表示されます。

iframe.onload = function() { //close } 内でアニメーションを停止しようとしましたが、問題は、iframe ページの読み込み内に次のコードがあることです。

    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.AddHeader("content-disposition", "attachment;  filename=ExcelDemo.xlsx");
    Response.BinaryWrite(pck.GetAsByteArray());
    Response.Flush();
    Response.End(); 

したがって、ページの実行は終了します。

iframeがロードされたことをどのように知ることができますか?

4

3 に答える 3

1

クライアント側のスクリプトを関与させる必要があると思います:

$("#iFrameId").load(function (){ 
    // Do something, probably an AJAX request in your case
}); 
于 2012-06-11T12:58:08.013 に答える
0

1 つの解決策は、iframe の読み込みが完了したときに呼び出すことができるメソッドを iframe JavaScript に含めることです。このメソッド内で、親ページのメソッドを呼び出します。

var iFrameLoaded = function () {
    parent.stopLoadingAnimation();
};

コードが iframe のページにロードされた後にページのロードを続行するには、Response.End() をドロップして、実行が続行されるようにします。

于 2012-06-11T16:00:48.763 に答える
-2

これを見ることができます、jquery iframeloaded.

function iframeLoaded() { alert("Iframe loaded!"); }

幸運を!

于 2012-06-11T13:23:43.800 に答える