2013-10-10 98 views
1

我正在尋找一種方法來檢測並調用一個隱藏的iframe完成下載文件(或開始下載文件)時的功能。iframe的Javascript事件完成加載

基本上,我有這樣的:

var iframe = document.getElementById("prodFrame"); 
iframe.src = "url to download file"; 
$("#prodFrame").load(function(){ 
    enableDownloadFunction(); 
}); 

不工作。我也試過iframe.onload,也沒有得到任何結果。無論這些嘗試中的哪一個,文件都可以正常下載,但enableDownloadFunction();從不會觸發。在隱藏的iframe中加載的網址需要大約2或3分鐘才能完成,並準備下載文件。實際下載文件只需要一兩秒鐘。所以,我只想在文件開始下載或完成下載時發生某些事情 - 要麼都可以。

另外,我沒有訪問服務器端的東西 - 只有客戶端。

+0

AFAIK你不能追蹤_file_以任何方式下載。您只能跟蹤_document_加載,如果您打開直接鏈接,則永遠不會觸發。您可以做的最好的事情是允許用戶使用他的瀏覽器的下載管理器功能下載大文件。 – Tommi

+0

http://stackoverflow.com/search?q=javascript+iframe+load+event – CBroe

+1

謝謝CBroe,我做了搜索,我嘗試了很多這些解決方案。你讀過我的問題還是我的標題?如果您在搜索中看到了一個解決方案,可以幫助我,我很樂意嘗試。 –

回答

0

使用jQuery準備在I幀的文檔對象

$(document).ready(function(){ 
    var iframe = document.getElementById("prodFrame"); 
    $(iframe.contentDocument).ready(function() { 
     enableDownloadFunction(); 
    }); 
}); 

但JEP - 測試,因爲用戶會被提示無法獲取下載事件「選擇您的位置」對話框

+0

這是立即觸發,而不是等待文件開始下載或完成下載。 –

+0

謝謝JaakKütt。不幸的是,你所做的編輯仍然立即開始。湯米說,我開始認爲這是不可能的。 –

+0

至少是編輯等待直到iframe標記本身加載XD –