0

ここで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自体に何もロードしていないため、イベントが発生することはありません。これがどのように行われるかを修正する必要があります。

4

1 に答える 1

0

非表示のiframe上のメッセージに添付された同様の問題に遭遇しました。IEは、「非表示」(display:none)iframeとのクロスドメイン通信を好まないようです。

私の回避策は、iframeを-9999pxの左の値で絶対位置に設定することでした。その後、それは効果的に隠され、あなたはそれに取り付けることができます。

于 2013-02-12T23:59:46.700 に答える