当前位置: 代码迷 >> Web前端 >> IE9 fireevent有关问题
  详细解决方案

IE9 fireevent有关问题

热度:144   发布时间:2012-11-22 00:16:41.0
IE9 fireevent问题

IE>=9 下时要使用标准浏览器的方法 dispatchEvent(fireEvent存在,但没效果)

http://stackoverflow.com/questions/9714527/why-does-fireevent-not-work-in-ie9

?

?

var event = document.createEvent("HTMLEvents");

event.initEvent("change",true,false);

document.getElementById("id").dispatchEvent(event);

这也是其它标准浏览器的方法

?

IE8以下

?

// IE浏览器支持fireEvent方法

? ?var evt = document.createEventObject();

?

? ? $(elementid).fireEvent('onclick', evt);

?

总体可以这样写

?

if (document.dispatchEvent){

? ?// 标准浏览器使用dispatchEvent方法

? ? ? ?var evt = document.createEvent( 'MouseEvents' );

? ? ? ?// initEvent接受3个参数:

? ? ? ?// 事件类型,是否冒泡,是否阻止浏览器的默认行为

?

? ? ? ?evt.initEvent('click', true, true);

? ? ? ?$(elementid).dispatchEvent(evt);

? ?}

? ?else{

? ? ? ?// IE浏览器支持fireEvent方法

? ? ??var evt = document.createEventObject();

?

? ? ? ?$(elementid).fireEvent('onclick', evt);

? ?}

?

?

还有ie9的选区也是支持标准浏览器的标准的