相关疑难解决方法(0)

Javascript生成的.ics文件在Chrome和Firefox中打开,但在IE中不会打开

我正在从JS生成一个.ics日历条目,然后我使用data-URI打开它:

window.open("data:text/calendar;charset=utf8," + escape(icsMSG));
Run Code Online (Sandbox Code Playgroud)

其中"icsMSG"是动态生成的.ics文件.这是console.log的示例输出:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//www.jungledragon.com//NONSGML v1.0//EN
BEGIN:VEVENT
UID:info@jungledragon.com
DTSTAMP:20140321T153010Z
ATTENDEE;CN=My Self ;RSVP=FALSE
CATEGORIES:APPOINTMENT
DTSTART:20140321T153010Z
DTEND:
LOCATION:5384 DA Heesch, The Netherlands
SUMMARY:JungleDragon Daylight Event
DESCRIPTION:Hey you!   \n \n  At this time in your calendar light conditions are great for the location you selected:\n \nhttp://www.ignore.org/apps/jd3/daylight#date=1392996610000&lat=51.73171&long=5.527827000000002\n\nHappy shooting, and be sure to share your wildlife photos back to http://www.jungledragon.com\nCheers,\nThe JungleDragon Team
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

根据规范,原始输出将在每行的末尾具有\n个字符.

当我从Chrome或Firefox运行它时,上面的示例工作正常,在这两种情况下它将打开我的默认日历应用程序(Outlook 2013).在IE(11)和Opera中,反而出现了一些奇怪的事情.将打开一个新选项卡,其中包含上述字符串作为URL,所有特殊字符都是URL转义的.像这样:

data:text/calendar;charset=utf8,BEGIN%3AVCALENDAR%0AVERSION%3A2.0%0APRODID%3A-//www.jungledragon.com//NONSGML%20v1.0//EN%0ABEGIN%3AVEVENT%0AUID%3Ainfo@jungledragon.com%0ADTSTAMP%3A20140321T153043Z%0AATTENDEE%3BCN%3DMy%20Self%20%3BRSVP%3DFALSE%0ACATEGORIES%3AAPPOINTMENT%0ADTSTART%3A20140321T153043Z%0ADTEND%3A%0ALOCATION%3A5384%20DA%20Heesch%2C%20The%20Netherlands%0ASUMMARY%3AJungleDragon%20Daylight%20Event%0ADESCRIPTION%3AHey%20you%21%20%20%20%5Cn%20%5Cn%20%20At%20this%20time%20in%20your%20calendar%20light%20conditions%20are%20great%20for%20the%20location%20you%20selected%3A%5Cn%20%5Cnhttp%3A//www.ignore.org/apps/jd3/daylight%23date%3D1392996643000%26lat%3D51.73171%26long%3D5.527827000000002%5Cn%5CnHappy%20shooting%2C%20and%20be%20sure%20to%20share%20your%20wildlife%20photos%20back%20to%20http%3A//www.jungledragon.com%5CnCheers%2C%5CnThe%20JungleDragon%20Team%0AEND%3AVEVENT%0AEND%3AVCALENDAR
Run Code Online (Sandbox Code Playgroud)

接下来,新选项卡为空白,没有任何反应.我不确定我的.ics中是否存在语法错误,但鉴于它适用于Chrome和Firefox,我不相信.

有什么想法吗?

编辑,额外信息:如果我手动打开具有完全相同内容的下载.ics文件,它也可以在IE和Opera中工作.使用window.open打开它的方式肯定有问题吗?

javascript internet-explorer calendar

6
推荐指数
1
解决办法
4319
查看次数

标签 统计

calendar ×1

internet-explorer ×1

javascript ×1