form下載文件,指向iframe ,如何判斷iframe加載完成 form.submit之後的事件問題 監聽form表單下載文件是否完成

執行downFile方法 像是沒指向iframe 還是 判斷iframe加載完成的事件有錯?
<form id="formDownload" target="downloadTarget" style="display:none;">  
       <div class="form-params">  
           <!-- 提交到後臺的參數,如果有多個參數,可以用多個hidden -->  
           <input type="hidden" name="param" value="" />  
       </div>  
   </form>
  <iframe id="downloadTarget" name="downloadTarget" style="display:none;"></iframe>
function downFile(url, method, params) {
    var form = $("#formDownload");
    form.empty();
    form.attr("method", method);
    form.attr("action", url);
    for ( var i in params) {
        var param=params[i];
        var input = $("<input>");
        input.attr("type", "hidden");
        input.attr("name", param.name);
        input.attr("value", param.value);
        form.append(input);
    }
    form.submit();
    var oFrm = $('#downloadTarget')[0];
    oFrm.onload = oFrm.onreadystatechange = function() {
        console.log("wancheng");
         if (this.readyState && this.readyState != 'complete') return;
         else {
             onComplete();
         }
    }
}
轉自:https://segmentfault.com/q/1010000009163994
注意:
var oFrm = $('#downloadTarget')[0];在IE11中可能不兼容,須用以下兩種方法取得
  1.  //獲取iframe的document對象         
  2.     //方法1  
  3.     var iframe = document.getElementById('iframe1').contentWindow.document;  
  4.   
  5.     //方法2  
  6.     function getIframeDom(iframeId) {  
  7.         return document.getElementById(iframeId).contentDocument || window.frames[iframeId].document;  
  8.     }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章