[英]Javascript iFrame add to download file in IE7 and IE8
我需要在ajax請求后下載文件。 因此,我將iframe添加到一個頁面,該頁面將一些數據發布到webmethod並獲取文件。 這是javascript代碼,位於按鈕單擊處理程序中:
var iframe = $("<iframe id='PDFIframe' style='display:none'></iframe>");
var iForm = $("<form id='PDFForm' action='App/Billing.asmx/GetPDF' target='PDFIframe' method='post' target='_parent'></form>")
.html('<input type="hidden" name="HtmlContent64" value="' + htmlContent64 + '"/><input type="hidden" name="billNum" value="' + this.billId + '"/>');
iframe.append(iForm);
tempCmp.append(iframe);
iForm.submit();
但是我在IE 7和8的iframe.append(iForm)
行中iframe.append(iForm)
了一個問題。在IE 9中,這一功能很完美! 我的代碼有什么問題?
編輯:我更多地了解了這個問題,也許這個問題導致我在IE9中測試不同的IE版本,更改了圖片中的值。 模式更改會導致此問題嗎? 也許在真正的7和8 IE瀏覽器中可以正常工作。 你怎么想?
花了很多時間后,我沒有找到解決問題的方法,但是我找到了一種解決方法,可以幫助我在沒有任何iframe的情況下下載IE7,IE8,IE9中的文件,打開新頁面等。這是代碼:
jQuery.download = function(url, data, method){
//url and data options required
if( url && data ){
//data can be string of parameters or array/object
data = typeof data == 'string' ? data : jQuery.param(data);
//split params into form inputs
var inputs = '';
jQuery.each(data.split('&'), function(){
var pair = this.split('=');
inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
});
//send request
jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
.appendTo('body').submit().remove();
};
};
$.download('/export.php','filename=mySpreadsheet&format=xls&content=' + spreadsheetData );
也許這將很有用,並為某些人節省時間;)這是用於請求類似Ajax的文件下載的jQuery插件的完整詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.