如何使用javascript在描述上生成带有超链接的ics

时间:2016-05-12 15:41:47

标签: javascript icalendar

我正在尝试使用javascript生成.ics文件。我能够打开ics文件但是当我尝试在ics文件的主体中设置html时,html显示为纯文本...下面是我试图用来将描述设置为html的参数字符串..有谁知道我做错了什么?

"BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
 CLASS:PUBLIC
 DESCRIPTION:
 X-ALT-DESC;FMTTYPE=text\/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META NAME="Generator" CONTENT="MS Exchange Server version 08.01.0240.003">
<TITLE></TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

 <A href="www.google.com" title="TEST">TEST</A></BODY>
</HTML>
DTSTART;VALUE=DATE:20160512T123232
DTEND;VALUE=DATE:20160512T123232
LOCATION:
SUMMARY;LANGUAGE=en-us:summary
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR"

3 个答案:

答案 0 :(得分:0)

如果您阅读iCalendar Protocol,则可以使用ALTREP属性参数完成此操作,甚至包括html内容。现在,当客户端获取日历文件时,它会处理内容并从不同的日历组件和属性中获取所需的数据。因此,如果客户端使用ALTREP属性参数,它可能会以html格式呈现内容。我不知道Outlook是否在ALTREP param之后呈现内容,也许还有其他客户端这样做。也许您需要寻找的是一个通过ALTREP来呈现内容的客户端。

希望有所帮助

答案 1 :(得分:0)

您的示例有几个问题:

底线:

  1. 尝试使用现有的iCalendar库来生成您的内容。这将照顾你的所有逃脱
  2. 使用富文本和您要定位的任何客户端(Outlook?)生成一些iCalendar示例事件,因为这应该为您提供一个良好的起点。

答案 2 :(得分:0)

iCal 规范实际上明确指定了一种在 iCal 中包含 HTML 的方法:

ALTREP 的定义说:“参数指定一个指向文本属性值的替代表示的 URI”,因此任何 URI 方案都是有效的。这意味着我们还可以在其中使用 data: 网址。

这意味着实际上有一种特殊的方法可以在 iCal 中存储 HTML 描述。

以下内容符合规范:

DESCRIPTION;ALTREP="data:text/html;<h1>Some text</h1>":Some text