Javascript 数据:Internet Explorer无法识别文本/日历

Javascript 数据:Internet Explorer无法识别文本/日历,javascript,internet-explorer,icalendar,Javascript,Internet Explorer,Icalendar,我正在尝试只使用JavaScript动态创建一个ics文件,而不使用中间保存。我仅限于JavaScript,没有保存,因为它最终将在平台上运行 我是一名JavaScript程序员新手,但我通过大量的网络搜索拼凑出了一些(几乎)有效的东西。我的想法在Chrome、Firefox甚至Opera中都能用,但在InternetExplorer中不起作用。在所有其他浏览器中,我会创建并下载一个ics文件,但在Explorer中,我会看到“无法显示网页”,整个ics流显示在地址栏中,从以下内容开始: dat

我正在尝试只使用JavaScript动态创建一个
ics
文件,而不使用中间保存。我仅限于JavaScript,没有保存,因为它最终将在平台上运行

我是一名JavaScript程序员新手,但我通过大量的网络搜索拼凑出了一些(几乎)有效的东西。我的想法在Chrome、Firefox甚至Opera中都能用,但在InternetExplorer中不起作用。在所有其他浏览器中,我会创建并下载一个ics文件,但在Explorer中,我会看到“无法显示网页”,整个ics流显示在地址栏中,从以下内容开始:

data:text/calendar;charset=utf8,BEGIN%3AVCALENDAR
从“开始”开始的所有内容都是ics文件的一部分

在所有其他浏览器中成功启动下载的代码如下:

 window.open("data:text/calendar;charset=utf8," + encodeURI(icsMSG));
icsmg
是组成实际
ics
文件的字符串

如前所述,唯一的问题是,这在IE中不起作用,因为IE似乎不知道如何处理“
数据:文本/日历”
”。。。或者我完全偏离了方向,只是不知道自己在做什么

如果需要,我可以提供所有代码


谢谢

我找到了一个对我有用的答案:

其中ICSMG是一个字符串,包含ICS文件中应包含的数据(从“开始”开始的所有内容)。还有一个if语句,可用于测试浏览器是否为旧版IE:

if (typeof window !== "undefined" &&
    window.navigator.msSaveOrOpenBlob &&
    window.Blob) { }

这对我来说在Internet Explorer 11中工作,而不必使用服务器下载文件。

也许可以尝试对有效负载进行base64编码,以防万一?另外,InternetExplorer高达9。您有没有找到解决方案?目前正在与IE11抗争
if (typeof window !== "undefined" &&
    window.navigator.msSaveOrOpenBlob &&
    window.Blob) { }