IE中的fireEvent和webkit中的dispatchEvent
拿浏览器的click事件来说:
在IE浏览器中如果一个element没有注册click事件,那么直接调用的话会出现异常!当然如果你注册了没有什么可说的。
那么如果使用fireEvent来处理,click事件注册了则直接触发注册的事件;即使没注册事件不会报错,如同用户点击了鼠标的左键的真实行为。
那么在webkit内核的浏览器中,我们需要使用dispatchEvent来替代fireEvent来触发事件。兼容代码如下:
var t = document.getElementById('button') if (document.all) { t.fireEvent("onclick"); } else { var evt = document.createEvent('HTMLEvents'); evt.initEvent('click', true, true); t.dispatchEvent(evt); }