2013-10-02 26 views
10

ユーザーがボタンをクリックしたときに.icsファイルを作成しようとしています。javascriptまたはjqueryで.icsファイルを作成する

これまでのところ私が持っているコードは

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

ですこれは.icsファイルをダウンロードしますが、私はiCalの中でこれを開こうとすると、私はそれがファイルを読み取ることができません聞いています。 「MAILTO :: [email protected]

これで問題が解決しない場合は、それが受信されると、あなたは、私たちに完全なiCalのストリームを表示する必要があります:

+0

開始時刻、終了時刻、現在地の値は何ですか? – AlliterativeAlice

+2

最後に、私はhttp://addthisevent.com/を使いました。とても良いプラグインです。 – joshuahornby10

答えて

3

あなたが主催者のアドレスのための2つのコロンを持っていますiCalによって。

最後に、start_timeとend_timeが正しい書式を使用していると仮定して、場所フィールドに行(http://tools.ietf.org/html/rfc5545#section-3.1)を囲み、特定の文字(http://tools.ietf.org/html/rfc5545#section-3.3.11)をエスケープする必要があります。言い換えれば、あなたはiCalendarライブラリを見たいかもしれません。

6

あり、このためのオープンソースプロジェクトである:

は、それが100%JavaScriptのだと以下IE 9とを除き、すべての最新ブラウザで働いていました。

ファイルがどのように機能するかについて興味がある場合は、そのソースを確認できます。彼らは、重い物を持ち上げるを実行するには、次のライブラリを使用します。

+3

ライセンスは定義されていないため、デフォルトではすべての権利が予約されています。その問題を開いた。 –

+2

@InsanelyADHDこのics.jsは6>サファリバージョンもサポートしていません。 –

+4

元のエディションはよく管理されておらず、重大な欠陥が含まれています。フォークはこの中で強いです。フォークを使用します。 https://github.com/connorbode/ics.js – starlocke

6

私はInsanelyADHD言及ics.jsソリューションを使用しました。

解決策の1つの問題は、Chromeがファイルタイプを正しく検出せず、ファイルをエディタでテキストとして開こうとしたことです。

私は単純にテキストを開くには、ダウンロード機能を変更:

window.open("data:text/calendar;charset=utf8," + escape(calendar)); 

のGithub上のマイフォークがライセンスについてicsFormatter.js

です:私はGPLを含めるように、元の作者に連絡をしている - その後私は1つも含めます。

+1

のためのdownvoteあなたはおそらくどのカレンダーが指定する必要があります。私の推測はisc()の結果です。download( 'name')? –

+0

例の終了日を修正します。 – atilkan

0

私は上記のicsFormatterとsmartbart24を使用しました。しかし、私はIEをバージョン7までサポートする必要があったので、少し修正する必要がありました。

icsGenのフォニックスフォークを使用するには、Webサーバーにphp 4または5をインストールする必要があります。

関連する問題