gpt4 book ai didi

Javascript - 将变量作为参数传递时描述问题中的 Ical 新行

转载 作者:行者123 更新时间:2023-12-03 03:53:21 65 4
gpt4 key购买 nike

首先我看过这个问题herehere这对解决我的问题没有帮助:

我正在使用此处稍微修改过的 ics.js 代码 github link

var ics = function() {
'use strict';

if (navigator.userAgent.indexOf('MSIE') > -1 && navigator.userAgent.indexOf('MSIE 10') == -1) {
console.log('Unsupported Browser');
return;
}

var SEPARATOR = (navigator.appVersion.indexOf('Win') !== -1) ? '\r\n' : '\n';
var calendarEvents = [];
var calendarStart = [
'BEGIN:VCALENDAR',
'VERSION:2.0',
'PRODID:http://www.example.com/calendarapplication/',
'METHOD:PUBLISH'
].join(SEPARATOR);
var calendarEnd = SEPARATOR + 'END:VCALENDAR';

return {
/**
* Returns events array
* @return {array} Events
*/
'events': function() {
return calendarEvents;
},

/**
* Returns calendar
* @return {string} Calendar in iCalendar format
*/
'calendar': function() {
return calendarStart + SEPARATOR + calendarEvents.join(SEPARATOR) + calendarEnd;
},

/**
* Add event to the calendar
* @param {string} subject Subject/Title of event
* @param {string} description Description of event
* @param {string} location Location of event
* @param {string} begin Beginning date of event
* @param {string} stop Ending date of event
*/
'addEvent': function(subject, description, location, begin, stop) {
// I'm not in the mood to make these optional... So they are all required
if (typeof subject === 'undefined' ||
typeof description === 'undefined' ||
typeof location === 'undefined' ||
typeof begin === 'undefined' ||
typeof stop === 'undefined'
) {
return false;
};


var start_date = new Date(begin);
var end_date = new Date(stop);
var start = start_date.toISOString().replace(/-/g,'').replace(/:/g, '').replace('.000', '');
var end = end_date.toISOString().replace(/-/g,'').replace(/:/g, '').replace('.000', '');

var calendarEvent = [
'BEGIN:VEVENT',
'UID:',
'ORGANIZER:',
'CLASS:PUBLIC',
'DESCRIPTION:' + description,
'DTSTART:' + start,
'DTEND:' + end,
'LOCATION:' + location,
'SUMMARY;LANGUAGE=en-us:' + subject,
'TRANSP:TRANSPARENT',
'END:VEVENT',
//'END:VCALENDAR'
].join(SEPARATOR);


calendarEvents.push(calendarEvent);
return calendarEvent;
},

可以通过两种方式调用:对信息进行硬编码 -

cal.addEvent('Demo Event', 'This is an all day event', 'Nome, AK', '8/7/2013', '8/7/2013');

并传递参数:

cal.addEvent(subject, description, location, begin, end);

对于第一个选项,解决方案在问题 here 中提供。通过添加\n\n

但是,我有一个变量描述,我将其传递给第二个选项来调用该函数

var description =  document.getElementById("description").value;
var subject = document.getElementById("subject").value;
var location = document.getElementById("location").value;
var begin = document.getElementById("begin").value;
var end = document.getElementById("end").value;
var cal = ics();
cal.addEvent( subject, summary, location, begin, end);

描述是一个可由用户填写的文本框,当发送到 ics() 时,将填写 Outlook 的 ical 要求。不幸的是,由于描述问题,只有第一行文本从文本区域发送到日历条目。

我非常不确定需要在代码中更改什么才能使所有文本都显示在日历条目中。我正在寻找 js/jquery 解决方案。老实说,我不知道从哪里开始使用我当前使用的代码来实现这一点。

最佳答案

这可能是一种编码问题,或者元素“描述”的内容不正确。请检查变量描述的内容,如下所示:

var description =  document.getElementById("description").value;
console.log(description.split('\n').join('#NEWLINE#'));

在这些 ical 对象中,换行符或换行符将被解释为描述的结束。尝试用“\\n”或类似的东西来引用它。欲了解更多详细信息,您必须检查 rfc5546 的规范但文档不是很清楚。

希望这对您有进一步帮助。

关于Javascript - 将变量作为参数传递时描述问题中的 Ical 新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45074389/

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