Я думаю, что мой вопрос очень конкретный. То, что я делаю прямо сейчас, - это создать простой список событий, в которых вы можете щелкнуть каждый из них в календаре (iCal, Календарь Google, Календарь Live и т. Д.). Для этого я использую addToCalentar, но в этом коде есть что-то странное.Сила для загрузки файла .ics
Когда я выбираю iCal, предполагается загрузить файл ics, но плагин откроет новую вкладку браузера, в которой показан сам файл. Все остальные параметры работают очень хорошо, потому что их нужно открывать в новом окне. Но муй вопрос. Где я могу изменить исходный код, чтобы загружать только файл, если пользователь выбирает опцию «iCal»?
Это мой HTML:
<div class="addtocal">
<div>01/04/2015 <span title="invite.ics"></span> </div>
</div>
Это мой плагин Конфигурация:
$('.addtocal').AddToCal({
icalEnabled:true,
vcalEnabled:false,
getEventDetails: function(element) {
var
dtstart_element = element.find('.dtstart'), start,
dtend_element = element.find('.dtend'), end,
title_element = element.find('.summary'), title,
details_element = element.find('.description'), details,
ics_element = element.find('.ics'), ics;
start = dtstart_element.length ? dtstart_element.attr('title') : new Date();
if(dtend_element.length) {
end = dtend_element.attr('title');
} else {
end = new Date();
end.setTime(end.getTime() + 60 * 60 * 1000);
}
title = title_element.length ? title_element.html() : element.attr('id');
details = details_element.length ? details_element.html() : element.html();
ics = ics_element.attr('title');
// return the required event structure
return {
webcalurl: null,
icalurl: ics,
vcalurl: null,
start: start,
end: end,
title: title,
details: details,
location: null,
url: null
};
},
});
Это ссылка плагин:
https://github.com/tardate/jquery.addtocalendar/blob/master/jquery.addtocal.js
Что я работаю, это изменение этого метода, чтобы определить, является ли item.label
iCal. Я могу добавить <a download>...</>
, но не работает.
_renderItem: function(ul, item) {
return $("<li></li>")
.data("item.addtocal", item)
.append($("<a></a>").text(item.label))
.appendTo(ul);
},