事件触发器javascript
这以前,一直都不明白这是说的什么,可是当查看w3school后,对这个方法有了必定的理解。java
在w3school中,这样说明这个方法:浏览器
dispatchEvent() 方法给节点分派一个合成事件。spa
语法:prototype
dispatchEvent(evt)
参数 | 描述 |
---|---|
evt | 必需。要分派的 Event 对象。 |
浏览器都有原生的方法来支持,可是在兼容性上又有很大的出入,这种兼容性的问题彻底在乎料之中,IE有本身的方法,其余标准浏览器也有一套方法,不说谁的方法好与很差,对于WEB开发者来讲搞出几套方法就是对开发人员的一种折磨。IE支持fireEvent方法来实现事件触发,标准浏览器支持dispatchEvent来实现事件触发,两面派的IE9是二者都支持。下面是出自prototype.js的源码(其实我是在查阅资料时从司徒正美的博客复制过来的):对象
var fireEvent = function fireEvent(element,event){ if (document.createEventObject){ // IE浏览器支持fireEvent方法 var evt = document.createEventObject(); return element.fireEvent('on'+event,evt) } else{ // 其余标准浏览器使用dispatchEvent方法 var evt = document.createEvent( 'HTMLEvents' ); // initEvent接受3个参数: // 事件类型,是否冒泡,是否阻止浏览器的默认行为 evt.initEvent(event, true, true); return !element.dispatchEvent(evt); } };