2013-05-15 4 views
0

Javascript를 사용하여 vCal 파일을 동적으로 생성하려고하는데 IE8에서 시도 할 때까지 모든 것이 잘 작동합니다. IE8에서는 브라우저가 다운로드 대신 요청 표시 줄에서 캘린더 파일을 열려고합니다. 이것은 내가 사용하는 코드 샘플입니다.Internet Explorer 8 및 vCalendar/ICS 파일

var iCal = 
    "BEGIN:VCALENDAR\n" + 
    "PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN\n" + 
    "METHOD:PUBLISH\n" + 
    "BEGIN:VEVENT\n" + 
    "ATTENDEE;CN=\""+locationAlias+"\";CUTYPE=RESOURCE;ROLE=NON-PARTICIPANT;RSVP=TRUE:mailto:"+locationEmail+"\n" + 
    "DTEND;TZID=\"GMT Standard Time\":"+dend+"\n" + 
    "DTSTART;TZID=\"GMT Standard Time\":"+dstart+"\n" + 
    "LOCATION:"+locationName+"\n" + 
    "ORGANIZER;CN=\"<someuser>\":mailto:<somemailto>\n" + 
    "END:VEVENT\n" + 
    "END:VCALENDAR"; 

return iCal;

다음을 사용하여 캘린더 파일을 열어보십시오.

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

IE8에서 파일을 인식 할 수없는 이유는 무엇입니까?

답변

-1

이 문제를 해결하려면 iCal 파일을 서버 측에서 생성하고 RESTful 웹 서비스를 통해 클라이언트에 노출 시키십시오. IE8이 자동으로 다운로드/내 기본 Outlook 인스턴스를 사용하여 파일을 열려고 시도 응답을 수신하면

형 달력 등의 반응을 확인하기 위해 나는 다음과 같은

ResponseBuilder builder = Response.ok(); 
    builder.header("content-disposition", 
      "attachment;filename=calendar.ics"); 

을 설정합니다.

모든 브라우저에서 작동합니다. 서버 요청을 요구하는 오버 헤드가 있지만 회의실 유효성 검사와 같은 요청에 대한 추가 처리를 적용 할 수도 있습니다.

+0

질문에 대한 답변이 없습니다. 그는 javascript에서 이것을 생성하려고합니다. – msponagle

+0

예 그러나 IE 브라우저는 동적으로 생성 될 때 OFT 파일을 인식하지 못하므로 서버 측 로직을 통해이를 수행해야합니다. 그 접근법이 현재 완전한 해결책이 아니기 때문에 나는 JavaScript로 이것을 수행하는 논리를 포함하지 않았다. ..... – cduggan

+0

또한 위에 포함 된 코드는 다른 모든 브라우저에서 작동 할 것이다. – cduggan