以下JS代码适用于Safari:
var a = $('.shell a')[0];
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window);
a.dispatchEvent(evObj);
然而,这一行
evObj.initMouseEvent('click', true, true, window);
在Firefox中给出了以下错误:
TypeError: Not enough arguments to MouseEvent.initMouseEvent.
我应该使用什么来实现多浏览器兼容性?
答案 0 :(得分:3)
正如您在MDN's initEvent
page上看到的那样,不推荐使用此类事件。 “改为使用事件构造函数”:
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
在你的情况下:
var evObj = new Event('click');
a.dispatchEvent(evObj);
但click
事件要简单得多! Native DOM对所有元素都有click()
方法,因此您可以这样做:
a.click();
就是这样。
如果您想触发自定义事件或事件,例如mouseover
,您仍然可以使用(新)事件派发系统:new Event('mouseover')
等