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);
            }

 

posted @ 2016-05-19 10:05  soft.push("zzq")  Views(715)  Comments(0Edit  收藏  举报