2014-12-24 5 views
12

IE8 이상 및 최신 브라우저를 확인하는 데 사용할 수있는 datepicker (JavaScript)가 있습니다.IE 11 DispatchEvent

if(-1 != navigator.userAgent.indexOf("MSIE")){ 
obj_caller.target.fireEvent("onchange"); 
} 
else { 
var evt = document.createEvent("HTMLEvents"); 
evt.initEvent("change", false, true); 
obj_caller.target.dispatchEvent(evt); 
} 

그것은 크롬, 파이어 폭스, IE8 이하의 벌금을 일하고 있지만 IE 11에서 실패하는 것은 내가 필요하면 그냥 알아낼 수 없습니다 IE 11에서 작동하는 다른 부분을 얻을 수있는 방법입니다 실패 무엇을 그것을 고치는 법.

감사합니다.

+4

브라우저를 스니핑하지 마세요. 'if (document.createEvent)' – epascarello

답변

11

귀하의 문제는 최신 IE 버전에서는 fireEvent를 사용하지 말아야한다는 것입니다. IE9에서는 dispatchEvent에 대한 지원이 추가되었습니다. http://help.dottoro.com/ljrinokx.php

if(document.createEventObject) { 
    obj_caller.target.fireEvent("onchange"); 
} else { 
    var evt = document.createEvent("HTMLEvents"); 
    evt.initEvent("change", false, true); 
    obj_caller.target.dispatchEvent(evt); 
} 
+0

dispatchevent 코드가 IE 11에서 작동하지 않아 그 이유를 알 수 없습니다. 코드에 문제가 있습니까? if else 루프를 꺼내서 IE 11에서 dispatchevent 코드로 테스트했는데 실패했습니다. 감사. – JohnnyCage

+0

업데이트를 확인하고 문제가 해결되는지 알려주세요. –

+2

아직도 작동하지 않습니다. IE 내부에서 코드가 IE 11에서는 실행되지 않습니다. – JohnnyCage