我在這裏看到了關於iframe onload的一些類似問題,但沒有任何工作適合我。隱藏的iframe onload事件
我有一個隱藏的iframe,我只用於用戶下載在我的服務器上動態創建的pdf。當用戶點擊一個按鈕時,通過指向一個控制器/操作以及查詢參數字符串,我的服務器上創建了pdf。
This works great。但是,當我按下此按鈕('BlockAndSpin'函數)時,我會顯示一個微調器並禁用UI。我想要隱藏微調器,並在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本身,因此它不會觸發該事件。我將不得不修改這是如何完成的。
只是一個建議 - 如果AddOrDownload是一個頁面或者可以被一個頁面包裝,你的onload方法將被放置在那裏。 – kpcrash
一個快速的[測試用例](http://jsfiddle.net/t28Nv/)顯示否則 - 'iframe' * does *調用'onload'屬性附加的'onload'處理程序。重新檢查您的代碼是否存在其他問題。 –
1)它不是一個頁面,它是一個返回的pdf。 2)如果我註釋掉實際的下載src,它可以工作 - 但它必須與其他有關下載的內容相關。 – user576838