使用javascript或jquery动态创建.ics文件?

AJS*_*ift 16 javascript icalendar outlook add

有人能告诉我是否有任何jquery插件动态创建.ics文件,其值来自页面div值,就像会有

<div class="start-time">9:30am</div>
<div class="end-time">10:30am</div>
<div class="Location">California</div>
Run Code Online (Sandbox Code Playgroud)

或javascript方式动态创建.ics文件?我基本上需要创建.ics文件并使用javascript或jquery提取这些值?并将创建的ics文件链接到"添加到日历"链接,以便将其添加到Outlook?

小智 31

你需要以ICS格式制作它.你还需要转换日期和时区; EG 20120315T170000Z或yyyymmddThhmmssZ

    msgData1 = $('.start-time').text();
    msgData2 = $('.end-time').text();
    msgData3 = $('.Location').text();

    var icsMSG = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//Our Company//NONSGML v1.0//EN\nBEGIN:VEVENT\nUID:me@google.com\nDTSTAMP:20120315T170000Z\nATTENDEE;CN=My Self ;RSVP=TRUE:MAILTO:me@gmail.com\nORGANIZER;CN=Me:MAILTO::me@gmail.com\nDTSTART:" + msgData1 +"\nDTEND:" + msgData2 +"\nLOCATION:" + msgData3 + "\nSUMMARY:Our Meeting Office\nEND:VEVENT\nEND:VCALENDAR";

    $('.test').click(function(){
        window.open( "data:text/calendar;charset=utf8," + escape(icsMSG));
    });
Run Code Online (Sandbox Code Playgroud)

上面的示例将创建一个ics文件供下载.用户必须打开它,outlock,iCal或谷歌日历将完成剩下的工作.

  • 仅供参考:截至 2013 年 8 月 8 日,此代码不起作用。.ics 文件下载并打开,但 iCal 说它无法读取文件并出错:/ 注意:如果您删除“\n BEGIN:VEVENT \n”周围的空格,它可以工作,但不会让我编辑6个字符以下的任何东西:( (2认同)
  • 我根本无法在IE中使用它.有任何想法吗? (2认同)

mwc*_*wcz 1

这是一个老问题,但我有一些想法可以帮助您(或任何其他需要执行类似任务的人)开始。

JavaScript 创建文件内容,并打开文件:

var filedata = $('.start-time, .end-time, .Location').text();
window.open( "data:text/calendar;charset=utf8," + escape( filedata ) );
Run Code Online (Sandbox Code Playgroud)

您可能希望将该代码添加到表单按钮的 onclick 事件中。

我手边没有 Outlook,所以我不确定它是否会自动识别文件类型,但可能会。

希望这可以帮助。