如何防止execCommand('SaveAs',打开新选项卡或窗口

问题描述 投票:1回答:2

我必须在IE中生成一个下载弹出窗口。我使用下面的代码。当我点击按钮时,它会打开一个新选项卡和另存为对话框

 function SaveContents(element) {

            if (document.execCommand) {
                var oWin = window.open("about:blank","_blank");![enter image description here][1]
                oWin.document.write(element);
                oWin.document.close();
                var success = oWin.document.execCommand('SaveAs', false, "FilteredReport.xls")
                oWin.close();

            }

}

如何在不打开新窗口或选项卡的情况下显示“另存为对话框”..

我也可以在不使用的情况下将字符串的数据写入excel

oWin.document.write(element);

因为它被写入打开的新选项卡或窗口

下图解释..

javascript dom internet-explorer-9 domdocument execcommand
2个回答
1
投票

而不是IEwindow.document.execCommand('SaveAs', true, fileName + ".xls");使用下面的代码片段

if (window.navigator.msSaveOrOpenBlob) {
     blobObject = new Blob([CSV]);
     window.navigator.msSaveOrOpenBlob(blobObject, 'Export.xls');
 }
IEwindow.close();

0
投票

包含ID为IframeForExcelExportonIE的iframe

<iframe id="IframeForExcelExportonIE" style="display: none"></iframe>

IframeForExcelExportonIE.document.open("txt/html", "replace");
IframeForExcelExportonIE.document.write(cln.innerHTML);
IframeForExcelExportonIE.document.close();
IframeForExcelExportonIE.focus();
sa = IframeForExcelExportonIE.document.execCommand("SaveAs", true, " test.xls");
© www.soinside.com 2019 - 2024. All rights reserved.