2014-12-24 11 views
12

Abbiamo un Datepicker (in JavaScript) che ha una sezione per il controllo di IE 8 e dei browser più vecchi e moderni.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); 
} 

Sta lavorando bene in Chrome, Firefox, IE8 e al di sotto, ma sta fallendo in IE 11. Che cosa ho bisogno è un modo per ottenere la parte altra di lavoro in IE 11. Non riesco proprio a capire cosa sta fallendo e come sistemarlo.

Grazie.

+4

Non annusare i browser! 'if (document.createEvent)' – epascarello

risposta

11

Il problema è che fireEvent non deve essere utilizzato nelle versioni di IE più recenti. Il supporto per dispatchEvent è stato aggiunto in IE9. 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

Il codice dispatchevent non funziona in IE 11 e non riesco a capire perché. C'è qualcosa che non va nel codice? Ho tirato fuori l'intero ciclo if else e appena testato in IE 11 con il codice dispatchevent e non è riuscito. Grazie. – JohnnyCage

+0

Vedere l'aggiornamento e fammi sapere se questo funziona per voi. –

+2

Ancora non funziona. Il codice interno non è in esecuzione in IE 11. – JohnnyCage

Problemi correlati