Создать файл .ics на лету, используя javascript или jquery?
Автор вопроса: AJSwiftОтветов: 5
Может ли кто-нибудь сказать мне, есть ли какой-либо плагин jquery для динамического создания файла .ics со значениями, исходящими из значений div страницы, как это было бы
или способ javascript для динамического создания файла .ics? Мне в основном нужно создать файл .ics и вытащить эти значения с помощью javascript или jquery? и связать созданный файл ics со ссылкой "ДОБАВИТЬ В КАЛЕНДАРЬ", чтобы он был добавлен в Outlook?
приведенный выше пример создаст файл ics для загрузки. пользователь должен будет открыть его, а Outlock, iCal или календарь Google сделают все остальное.
Ответ 2 · рейтинг 1 · mwcz
Это старый вопрос, но у меня есть несколько идей, которые могли бы помочь вам начать (или любому другому, кому нужно выполнить аналогичную задачу).
И JavaScript для создания содержимого файла и открытия файла:
Предположительно, вы захотите добавить этот код в событие onclick кнопки формы.
У меня нет под рукой Outlook, поэтому я не уверен, что он автоматически распознает тип файла, но может.
Надеюсь это поможет.
Ответ 3 · рейтинг 1 · ChronixPsyc
Из того, что я нашел в Интернете и на этом сайте, невозможно заставить это работать в IE, так как вам нужно включить определенные заголовки, чтобы IE знал о загрузке этого файла.
Метод window.open работает для Chrome и Firefox, но не для IE, поэтому вам может потребоваться изменить структуру кода, чтобы использовать серверный язык для создания и загрузки файла ICS.
Хотя это старый вопрос, я также искал внешнее решение. Недавно я наткнулся на библиотеку ICS.js, которая выглядит как ответ, который вы ищете.
Ответ 5 · cdugga
Этот подход работал нормально, однако в IE8 браузер не мог распознать тип файла и отказывался открывать его как элемент календаря. Чтобы обойти это, мне пришлось создать код на стороне сервера (и выставить его через службу RESTful), а затем установить заголовки ответа следующим образом:
@GET
@Path("generateCalendar/{alias}/{start}/{end}")
@Produces({ "text/v-calendar" })
public Response generateCalendar(
@QueryParam("alias") final String argAlias,
@QueryParam("start") final String argStart,
@QueryParam("end") final String argEnd) {
ResponseBuilder builder = Response.ok();
builder.header("content-disposition", "attachment;filename=calendar.ics");
builder.entity("BEGIN:VCALENDAR\n<........insert meeting details here......>:VCALENDAR");
return builder.build();
}
Это можно выполнить, вызвав window.location по URL-адресу службы, и работает в Chrome, Firefox и IE8.