首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Internet Explorer 8和vCalendar/ICS文件

Internet Explorer 8和vCalendar/ICS文件
EN

Stack Overflow用户
提问于 2013-05-15 21:26:01
回答 1查看 1.8K关注 0票数 0

我正在尝试使用Javascript动态生成vCal文件,在我尝试使用IE8之前,一切都运行得很好。在IE8中,浏览器会尝试在请求栏中打开日历文件,而不是下载。这是我使用的代码示例

代码语言:javascript
复制
var iCal = 
    "BEGIN:VCALENDAR\n" +
    "PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN\n" +
    "METHOD:PUBLISH\n" +
    "BEGIN:VEVENT\n" +
    "ATTENDEE;CN=\""+locationAlias+"\";CUTYPE=RESOURCE;ROLE=NON-PARTICIPANT;RSVP=TRUE:mailto:"+locationEmail+"\n" +
    "DTEND;TZID=\"GMT Standard Time\":"+dend+"\n" +
    "DTSTART;TZID=\"GMT Standard Time\":"+dstart+"\n" +
    "LOCATION:"+locationName+"\n" +
    "ORGANIZER;CN=\"<someuser>\":mailto:<somemailto>\n" +
    "END:VEVENT\n" +
    "END:VCALENDAR";

返回iCal;

然后,我尝试使用以下命令打开日历文件;

代码语言:javascript
复制
window.open( "data:text/calendar;charset=utf8," + escape( iCal) );

关于IE8无法识别该文件的原因,有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-08 18:14:24

为了解决这个问题,我在服务器端生成了iCal文件,并通过RESTful get服务向客户端公开。

为了将响应标识为日历类型,我设置了以下内容

代码语言:javascript
复制
ResponseBuilder builder = Response.ok();
    builder.header("content-disposition",
            "attachment;filename=calendar.ics");

当IE8收到响应时,它会自动尝试使用我的默认Outlook实例下载/打开该文件。

这适用于所有浏览器。它确实有向服务器请求请求的开销,但是它也允许我对请求应用额外的处理,比如验证会议室是否有效等。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16566300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档