events - Javascript dispatchEvent click is not working in IE9 and IE10 -
i'm trying simulate mouse events click, mouseover etc on app build in extjs. i'm using below code simulate click,
function triggerevent(element, eventname) { if (document.createevent) { var evt = document.createevent('mouseevents'); evt.initevent(eventname, true, true); return element.dispatchevent(evt); } } var btn = document.getelementbyid("loginbutton"); triggerevent(btn, "click");
this works fine on chrome , firefox never works on ie9 , ie10. if use btn.fireevent('onlclick') works fine in ie9 (not checked in ie10). document.createevent supported in ie9 & ie10 i'm not sure why code not working.
i have had same issue custom events time ago , solved using code found in other question: custom events in ie without using libraries
actually don't need use code, 3 function use wrapper browser compatibility.
but suggest use .click method solve problem more (at least normal click) http://www.w3schools.com/jsref/met_html_click.asp
so
document.getelementbyid("loginbutton").click();
i pasting here code sergey gospodarets other question, useful.
function triggerevent(el,eventname){ var event; if(document.createevent){ event = document.createevent('htmlevents'); event.initevent(eventname,true,true); }else if(document.createeventobject){// ie < 9 event = document.createeventobject(); event.eventtype = eventname; } event.eventname = eventname; if(el.dispatchevent){ el.dispatchevent(event); }else if(el.fireevent && htmlevents['on'+eventname]){// ie < 9 el.fireevent('on'+event.eventtype,event);// can trigger real event (e.g. 'click') }else if(el[eventname]){ el[eventname](); }else if(el['on'+eventname]){ el['on'+eventname](); } } function addevent(el,type,handler){ if(el.addeventlistener){ el.addeventlistener(type,handler,false); }else if(el.attachevent && htmlevents['on'+type]){// ie < 9 el.attachevent('on'+type,handler); }else{ el['on'+type]=handler; } } function removeevent(el,type,handler){ if(el.removeventlistener){ el.removeeventlistener(type,handler,false); }else if(el.detachevent && htmlevents['on'+type]){// ie < 9 el.detachevent('on'+type,handler); }else{ el['on'+type]=null; } } var _body = document.body; var customeventfunction = function(){ alert('triggered custom event'); } // subscribe addevent(_body,'customevent',customeventfunction); // trigger triggerevent(_body,'customevent');
Comments
Post a Comment