créer.fichier ics à la volée en utilisant javascript ou jquery?

Quelqu'un peut-il me dire s'il y a un plugin jquery à créer dynamiquement?fichier ics avec des valeurs provenant de la page div valeurs comme il serait

<div class="start-time">9:30am</div>
<div class="end-time">10:30am</div>
<div class="Location">California</div>

ou javascript façon de créer dynamiquement une .fichier ics? En gros, j'ai besoin de créer .fichier ics et de tirer de ces valeurs à l'aide de javascript ou jquery? et lien qui a créé le fichier ics pour" ajouter au calendrier " lien de sorte qu'il est ajouté à outlook?

16
demandé sur Jon Adams 2011-12-14 01:46:02

5 réponses

vous aurez besoin de le faire dans le format ICS. aussi, vous aurez besoin de convertir la date et le fuseau horaire; E. G. 20120315T170000Z ou yyyymmddThhmmssZ

    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:me@google.com\nDTSTAMP:20120315T170000Z\nATTENDEE;CN=My Self ;RSVP=TRUE:MAILTO:me@gmail.com\nORGANIZER;CN=Me:MAILTO::me@gmail.com\nDTSTART:" + msgData1 +"\nDTEND:" + msgData2 +"\nLOCATION:" + msgData3 + "\nSUMMARY:Our Meeting Office\nEND:VEVENT\nEND:VCALENDAR";

    $('.test').click(function(){
        window.open( "data:text/calendar;charset=utf8," + escape(icsMSG));
    });

l'exemple ci-dessus va créer un fichier ics pour le téléchargement. l'utilisateur devra ouvrir et outlock, iCal ou google calendar se chargera du reste.

28
répondu Defigo 2013-08-08 20:40:06

C'est une vieille question, mais j'ai quelques idées qui pourraient vous aider à démarrer (ou quelqu'un d'autre qui a besoin de faire une tâche similaire).

et le JavaScript pour créer le contenu du fichier, et ouvrir le fichier:

var filedata = $('.start-time, .end-time, .Location').text();
window.open( "data:text/calendar;charset=utf8," + escape( filedata ) );

probablement vous voudriez ajouter ce code à l'événement onclick d'un bouton de forme.

Je n'ai pas Outlook sous la main, donc je ne suis pas sûr qu'il reconnaîtra automatiquement le type de fichier, mais il pourrait.

Espérons que cette aide.

1
répondu mwcz 2012-03-25 18:20:01

à partir de ce que j'ai trouvé en ligne et sur ce site, il n'est pas possible de faire fonctionner cela dans IE car vous devez inclure certains en-têtes pour laisser IE savoir pour télécharger ce fichier.

La fenêtre.ouvrir méthode fonctionne pour Chrome et Firefox mais pas IE donc vous pouvez avoir besoin de restructurer votre code pour utiliser un langage côté serveur pour générer et télécharger le fichier ICS.

Plus peut être trouvé dans ce question

1
répondu ChronixPsyc 2017-05-23 12:17:50

cette approche a bien fonctionné cependant avec IE8 le navigateur ne pouvait pas reconnaître le type de fichier et a refusé d'ouvrir comme un élément de calendrier. Pour contourner cela, j'ai dû créer le code du côté du serveur (et exposé via RESTful service) et ensuite définir les en-têtes de réponse comme suit:

@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();
}

ceci peut être servi en appelant window.localisation sur L'URL de service et fonctionne sur Chrome, Firefox et IE8.

Espérons que cette aide.

0
répondu cduggan 2013-07-04 07:15:44

bien qu'il s'agisse d'une question plus ancienne, j'ai également cherché une solution préliminaire. J'ai récemment trébuché sur la partage de connexion internet.bibliothèque js qui ressemble à la réponse que vous cherchez.

0
répondu E Tarasewicz 2016-02-04 19:45:09