ここでiframeのオンロードに関して同様の問題がいくつか見られましたが、何も機能していません。
サーバー上で動的に作成されたPDFをユーザーがダウンロードするためにのみ使用する非表示のiframeがあります。ユーザーがボタンをクリックすると、パラメーターのクエリ文字列とともにコントローラー/アクションをポイントすることにより、サーバー上にpdfが作成されます。
これはうまくいきます。ただし、スピナーを表示し、このボタンを押すとUIを無効にします(「BlockAndSpin」関数)。スピナーを非表示にして、PDFがダウンロードされたらUIを再度有効にします。
ChromeとFFでデバッグするときに、onloadメソッドがヒットすることはありません。また、onload属性をiframe自体に追加しようとしましたが、それも機能しませんでした。ファイルはダウンロードされますが、UIは同じままで、onloadイベントは発生しません。
js
function downloadPOS(id) {
var ifrm = document.getElementById(id)
BlockAndSpin(true);
ifrm.src = "/staticPOS/AddOrDownload" + GetPosQueryString();
ifrm.onload = function () {
BlockAndSpin(false);
}
}
html
<iframe id="dlFrame" onload="BlockAndSpin(false);" style="display: none"></iframe>
どうやらこれはできません。私の応答は、ユーザーが.pdfをダウンロードしていて、iframe自体に何もロードしていないため、イベントが発生することはありません。これがどのように行われるかを修正する必要があります。