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的选区也是支持标准浏览器的标准的