Javascript window.open() 没有下载文件

Javascript window.open() doesn't download file

在 Chrome window.open() 下载 ICS 文件,但在 MS Edge 中,它试图在不同的选项卡中打开文件。我如何确保 Edge 以与 Chrome 相同的方式下载文件。

代码:

var icsMSG = ""; // Here goes the calendar details
window.open("data:text/calendar;charset=utf8," + escape(icsMSG))

您在使用 Edge Legacy 吗? Edge Legacy 仅支持 msSaveBlob method 下载文件。您可以将 Edge 更新到最新的 Edge Chromium,以便 window.open() 下载或在 Edge Legacy 中使用 msSaveBlob

如果你还想使用Edge Legacy,可以参考以下代码使用msSaveBlob下载:

    var icsMSG = ""; // Here goes the calendar details
    if (window.navigator && window.navigator.msSaveBlob) { // For IE & Edge Legacy
        var blob = new Blob([icsMSG], { type: 'text/calendar;charset=utf-8\'' })
        window.navigator.msSaveBlob(blob, 'download.ics')
    }
    else {
        window.open("data:text/calendar;charset=utf8," + escape(icsMSG));
    }