我是StackOverflow的新手,也是Javascript的初学者,因此对于代码或我的帖子是否存在明显问题,我深表歉意。目前,我并不一定要以最好或最漂亮的方式做到这一点,只需在实习期结束前让该项目开始工作即可。我一直在努力使https://github.com/commonpike/add-to-calendar-buttons可以通过Internet Explorer与日历一起使用,这与Encode:URI或HTML“下载”属性不兼容。
借助对项目的帮助注释和针对类似问题的其他修复程序,我已经想到,我可以在适当的地方添加此代码并使事情正常进行。日历功能已经是代码的一部分,但我将其包括在内,因为它会受到影响。
var href2 = (
'BEGIN:VCALENDAR',
'VERSION:2.0',
'BEGIN:VEVENT',
'URL:' + document.URL,
'DTSTART:' + (startTime || ''),
'DTEND:' + (endTime || ''),
'SUMMARY:' + (event.title || ''),
'DESCRIPTION:' + (event.description || ''),
'LOCATION:' + (event.address || ''),
'UID:' + (event.id || '') + '-' + document.URL,
'END:VEVENT',
'END:VCALENDAR');
if ((navigator.userAgent.indexOf("MSIE") != -1) || (!!document.documentMode == true)) {
return '<a class="' + eClass + '" href="javascript:msDownloadCalendar(\'' +
href2 + '\')">' + calendarName + '</a>';
} else {
return '<a class="' + eClass + '" download="' + CONFIG.texts.download + '" href="' +
href + '">' + calendarName + '</a>';
}
},
exports.msDownloadCalendar = function(url) {
if ((navigator.userAgent.indexOf("MSIE") != -1) || (!!document.documentMode == true)) {
var blob = new Blob([href2], {
type: 'text/calendar;charset=utf-8'
});
window.navigator.msSaveOrOpenBlob(blob, 'download.ics');
}
};
exports.addToCalendar = function(params) {
if (params instanceof HTMLElement) {
//console.log('HTMLElement');
return parseCalendar(params);
}
if (params instanceof NodeList) {
//console.log('NodeList');
var success = (params.length > 0);
Array.prototype.forEach.call(params, function(node) {
success = success && addToCalendar(node);
});
return success;
}
sanitizeParams(params);
if (!validParams(params)) {
console.log('Event details missing.');
return;
}
return generateMarkup(
generateCalendars(params.data),
params.options.class,
params.options.id
);
};
但是,这不能解决问题。尽管它对其他浏览器的功能没有影响,但它在IE中完全破坏了它,因为仅显示标题,而控制台说未定义功能“ addtocalendar”。 “ Addtocalender”仅记录IE中未定义的日志,因此我必须假设
正在发挥作用 if ((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true ))
。
非常感谢社区中的任何人,他们可以给我一些意见并帮助我启动并运行它。我已经用我目前的技能尽一切可能将头顶在墙上,并且学到了很多东西,但是担心我已经达到了我目前的极限。