我能夠將這個腳本放在一起,只需點擊一個按鈕即可生成ics日曆文件,但它不能在IE或Safari中使用。有沒有人能夠獲得這些ics文件下載在IE中工作?瀏覽器無法識別該文件。iCal文件下載在IE中發送錯誤
我在網上看到的關於這個問題的每個問題都有關於「添加標題」的非常不完整的答案,無論如何,至少我認爲我會推出一個可在Chrome中運行的完整html/js版本/火狐w /完整的日期對象,ISO8601轉換等。這是在一個JSP文件。
<span class="start-date">01/13/2017</span>
<span class="end-date">01/15/2017</span>
<span class="start-time">1 PM</span>
<span class="end-time">3 PM</span>
<span class="event-title">NYC</span>
<span class="event-location">NYC</span>
<button class="createICS"> Add to Calendar </button>
<script>
var currentDateTime = iso8601Format(new Date().toISOString());
var startDateTime = iso8601Format(new Date($('.start-date').text() + " " + $('.start-time').text()).toISOString());
var endDateTime = iso8601Format(new Date($('.end-date').text() + " " + $('.end-time').text()).toISOString());
var eventLocation = $('.event-location').text();
var eventTitle = $('.event-title').text();
var icsMSG = "BEGIN:VCALENDAR\n" +
"VERSION:2.0\n" +
"PRODID:-//Our Company//NONSGML v1.0//EN\n" +
"BEGIN:VEVENT\n" +
"DTSTAMP:" + currentDateTime + "\n" +
"DTSTART:" + startDateTime + "\n" +
"DTEND:" + endDateTime + "\n" +
"LOCATION:" + eventLocation + "\n" +
"SUMMARY:" + eventTitle + "\n" +
"END:VEVENT\n" +
"END:VCALENDAR";
console.log(icsMSG);
$('.createICS').click(function(){
window.open("data:text/calendar;charset=utf8," + encodeURIComponent(icsMSG));
});
function iso8601Format(dateTime) { // Converts date and time to the format we need: yyyyMMddThhmmssZ
var dT = dateTime.replace(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}).(\d{3})Z$/,'$1$2$3T$4$5$6Z');
return dT;
}
</script>
在返回iCal文件的servlet中看起來像什麼?我之前沒有看到這些響應頭,不知道如何使用它們。我可以在它們上找到mozilla文檔,但是它在java/jsp中的實現並不是很有幫助 –