2011-12-13 6 views
16

कोई मुझे बता सकते हैं कि वहाँ गतिशील .ics पेज div मूल्यों से आ रही मूल्यों के साथ दायर की तरह वहाँजावास्क्रिप्ट या jquery का उपयोग कर फ्लाई पर .ics फ़ाइल बनाते हैं?

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

या गतिशील एक .ics फ़ाइल बनाने के लिए जावास्क्रिप्ट तरीका होगा बनाने के लिए किसी भी jQuery प्लगइन है? मुझे मूल रूप से .ics फ़ाइल बनाने और जावास्क्रिप्ट या jquery का उपयोग करके इन मानों को खींचने की आवश्यकता है? और लिंक जिसने ics फ़ाइल को "कैलेंडर में जोड़ें" लिंक बनाया है, इसलिए इसे दृष्टिकोण में जोड़ा जाता है?

उत्तर

1

यह एक पुराना सवाल है, लेकिन मेरे पास कुछ विचार हैं जो आपको शुरू कर सकते हैं (या किसी और को जो एक समान कार्य करने की आवश्यकता है)।

और JavaScript फ़ाइल सामग्री बनाने के लिए, और फ़ाइल को खोलने:

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

मुमकिन है आप एक फार्म बटन के onclick घटना के लिए कि कोड जोड़ सकते हैं,।

मेरे पास Outlook आसान नहीं है, इसलिए मुझे यकीन नहीं है कि यह स्वचालित रूप से फ़ाइल प्रकार को पहचान लेगा, लेकिन हो सकता है।

उम्मीद है कि इससे मदद मिलती है।

28

आप ICS प्रारूप में इसे बनाने के लिए की आवश्यकता होगी। आपको दिनांक और समय क्षेत्र को भी परिवर्तित करने की आवश्यकता होगी; E.G. 20120315T170000Z या 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:[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"; 

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

ऊपर नमूना डाउनलोड के लिए एक ICS फ़ाइल पैदा करेगा। उपयोगकर्ता को इसे खोलना होगा और आउटॉक, iCal, या google कैलेंडर बाकी करना होगा।

+1

FYI करें किसी को भी करने के लिए देख: 8/8/13 के रूप में इस कोड काम नहीं करता। .ics फ़ाइल डाउनलोड और खुलती है लेकिन iCal का कहना है कि यह फ़ाइल और त्रुटियों को नहीं पढ़ सकता है:/ नोट: यदि आप "\ n BEGIN: VEVENT \ n" के आसपास की जगहों को हटाते हैं, लेकिन SO मुझे 6 अक्षर के तहत कुछ भी संपादित :( –

+0

यह मेरे लिए सनक से काम अभी! – Reuben

+0

तो यह iOS पर वेब ब्राउज़र में काम करता है लेकिन नहीं, जब यह phonegap में लिपटे है ..कोई विचार है कि यह काम कैसे करें? उन लोगों के लिए जो इसे एक अलग प्रश्न में चाहते हैं, यहां: http://stackoverflow.com/questions/18166561/allowing-ics-to-open-in-phonegap-app-for-ios?noredirect=1#comment26614023_18166561 – Reuben

0

यह दृष्टिकोण ठीक तथापि ब्राउज़र काम IE8 के साथ फ़ाइल प्रकार पहचान नहीं कर सके और एक कैलेंडर आइटम के रूप में खोलने के लिए मना कर दिया। इसके चारों ओर जाने के लिए मुझे सर्वर की तरफ कोड बनाना था (और रीस्टफुल सेवा के माध्यम से खुलासा किया गया था) और उसके बाद प्रतिक्रिया शीर्षलेख सेट करें;

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

यह सेवा यूआरएल पर विंडो.लोकेशन को कॉल करके और क्रोम, फ़ायरफ़ॉक्स और आईई 8 पर काम करके सेवा की जा सकती है।

उम्मीद है कि इससे मदद मिलती है।

1

जो मुझे ऑनलाइन और इस साइट पर मिला है, उससे इसे आईई में काम करना संभव नहीं है क्योंकि आपको कुछ हेडर शामिल करने की आवश्यकता है ताकि आईई को इस फ़ाइल को डाउनलोड करने के लिए पता चल सके।

विंडो.ओपेन विधि क्रोम और फ़ायरफ़ॉक्स के लिए काम करती है लेकिन आईई नहीं है इसलिए आपको आईसीएस फ़ाइल जेनरेट और डाउनलोड करने के लिए सर्वर-साइड भाषा का उपयोग करने के लिए अपने कोड को पुन: स्थापित करने की आवश्यकता हो सकती है।

अधिक इस question

0

में पाया जा सकता है इस एक पुराने सवाल है, मैं एक सामने के अंत समाधान की तलाश में था और साथ ही। मैंने हाल ही में ICS.js library पर ठोकर खाई है जो आप जिस उत्तर को ढूंढ रहे हैं उसे दिखता है।

संबंधित मुद्दे