gpt4 book ai didi

javascript - Internet Explorer 打开 Outlook 约会 javascript

转载 作者:行者123 更新时间:2023-11-28 09:54:24 28 4
gpt4 key购买 nike

想想看,我在使用 IE 时遇到了问题,希望有人能够提供帮助......我有一个网站,访问者可以在该网站上报名参加特定的 session ,然后我希望能够为他们选择的日历生成约会;选项包括 Gmail、yahoo 和 Outlook。 gmail 和 yahoo 约会在所有浏览器中均按预期生成,但 Outlook 约会在除 IE 之外的所有浏览器中均有效。 IE 不会抛出文件保存对话框,而是打开一个新窗口并尝试导航该 URL。

我正在使用稍微修改过的 iCalendar jquery 库,并在 JavaScript 中构建 ics 标记,如下所示

//build ics markup
var event = makeAppointment(settings);
//render ics markup as outlook appointment
window.open("data:text/calendar;charset=utf8," + escape(event));

function makeAppointment()
{
return 'BEGIN:VCALENDAR\n' +
'VERSION:2.0\n' +
'PRODID:jquery.icalendar\n' +
'METHOD:PUBLISH\n' +
'BEGIN:VEVENT\n' +
'UID:' + new Date().getTime() + '@' +
(window.location.href.replace(/^[^\/]*\/\/([^\/]*)\/.*$/, '$1') || 'localhost') + '\n' +
'DTSTAMP:' + $.icalendar.formatDateTime(new Date()) + '\n' +
(event.url ? limit75('URL:' + event.url) + '\n' : '') +
(event.contact ? limit75('MAILTO:' + event.contact) + '\n' : '') +
limit75('TITLE:' + event.title) + '\n' +
'DTSTART:' + $.icalendar.formatDateTime(event.start) + '\n' +
'DTEND:' + $.icalendar.formatDateTime(event.end) + '\n' +
(event.summary ? limit75('SUMMARY:' + event.summary) + '\n' : '') +
(event.description ? limit75('DESCRIPTION:' + event.description) + '\n' : '') +
(event.location ? limit75('LOCATION:' + event.location) + '\n' : '') +
(event.recurrence ? makeRecurrence(event.recurrence) + '\n' : '') +
'END:VEVENT\n' +
'END:VCALENDAR';
}

最佳答案

您可以通过添加“Content-Disposition:附件”响应 header 来使文件保存对话框在 IE 中工作。但是,这必须发生在服务器上,而不能发生在客户端脚本中,因为 JavaScript 无法修改 header 信息。

参见this answer相关详情。

关于javascript - Internet Explorer 打开 Outlook 约会 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317556/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com