Créer un fichier .ics avec javascript ou jquery
Je suis en train de créer un .ics
fichier lorsqu'un utilisateur clique sur un bouton.
Jusqu'à présent, le code que j'ai est
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:[email protected]\nDTSTAMP:20120315T170000Z\nATTENDEE;CN=My Self ;RSVP=TRUE:MAILTO:[email protected]\nORGANIZER;CN=Me:MAILTO::[email protected]\nDTSTART:" + msgData1 +"\nDTEND:" + msgData2 +"\nLOCATION:" + msgData3 + "\nSUMMARY:Our Meeting Office\nEND:VEVENT\nEND:VCALENDAR";
$('.button').click(function(){
window.open( "data:text/calendar;charset=utf8," + escape(icsMSG));
});
Cela télécharge un .ics
fichier mais lorsque je tente d'ouvrir ce dans iCal je me suis dit qu'il ne peut pas lire le fichier.
source d'informationauteur joshuahornby10
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé le ics.js solution mentionnée par InsanelyADHD.
Un problème avec la solution était que Chrome n'a pas de détecter le type de fichier correctement et essayé d'ouvrir le fichier texte avec l'éditeur.
J'ai changé la fonction de téléchargement pour ouvrir le texte simplement avec:
Mon fork sur Github est icsFormatter.js
Concernant les permis de conduire: j'ai contacté l'auteur original pour inclure un GPL - après cela, je vais inclure un trop.
Il y a un projet open source pour cette:
C'est 100% JavaScript et a travaillé sur tous les navigateurs sauf IE 9 et ci-dessous.
Si vous êtes intéressé à la façon dont ils obtenir les fichiers de travail, vous pouvez vérifier leur source. Ils utilisent les bibliothèques suivantes pour effectuer le levage lourd:
Vous avez deux deux-points pour l'organisateur adresse: "MAILTO::[email protected]"
Si cela ne résout pas le problème, vous devrez nous montrer la pleine ical flux, qu'il est reçu par iCal.
Enfin, et en supposant que start_time et end_time utilisez le bon format, pour le domaine de la localisation, vous pouvez avoir besoin de retour à la ligne (http://tools.ietf.org/html/rfc5545#section-3.1) et de s'échapper certains caractères (http://tools.ietf.org/html/rfc5545#section-3.3.11). En d'autres termes, vous pouvez regarder la iCalendar bibliothèques.
J'ai utilisé icsFormatter qui a été mentionné et en smartbart24. Mais j'ai été nécessaires pour soutenir IE vers la version 7, j'ai donc eu à retoucher un peu les choses.
À utiliser icsGenma fourchette de icsFormatter, vous devez avoir php 4 ou 5 est installé sur votre serveur.