我有一些使用dispatchEvent模拟点击的代码,相同的代码在Chrome中运行良好,但在Firefox中不起作用。代码如下:
var evt = document.createEvent("MouseEvents");
evt.initEvent("click",true,true);
jQuery("a:contains(Next)")[0].dispatchEvent(evt);我点击了一个加载另一个页面的链接,该页面在Chrome中加载正常,但当我在Firebug中运行这段代码时,Firefox绝对没有任何反应,甚至当我将其作为bookmarklet执行时也是如此。我还尝试了通过设置MDC文档中所示的所有选项来进行长时间的事件初始化,但这并不起任何作用。我到底做错了什么?
发布于 2011-06-25 08:36:31
由于您的事件看起来是鼠标事件,因此您可能会尝试使用鼠标事件,如下例所示:
var oEvt = (document.createEvent)? document.createEvent('MouseEvents') : document.createEventObject();
// W3C
if (oEvt.initMouseEvent)
oEvt.initMouseEvent(
/* type*/ 'mouseup',
/* bubble*/ true,
/* cancel*/ true,
/* AbstractView*/ window,
/* detail */ 10,
/* screenX */ 20,
/* screenY */ 30,
/* clientX */ 40,
/* clientY */ 50,
/* ctrlKey */ false,
/* altKey */ false,
/* shiftKey */ true,
/* metaKey */ false,
/* button */ 0,
/* relatedTarget*/ null ) ;
// MSIE
else {
var oEvt = document.createEventObject();
oEvt.detail = 10;
oEvt.screenX = 20;
oEvt.screenY = 30;
oEvt.clientX = 40;
oEvt.clientY = 50;
oEvt.ctrlKey = false;
oEvt.altKey = false;
oEvt.shiftKey = true;
oEvt.metaKey = false;
oEvt.button = 0;
oEvt.relatedTarget = null;
}请参阅W3C Mouse event types
我还用法语写了一篇关于firing DOM events的教程;我想翻译起来很容易。
发布于 2014-04-24 20:15:03
https://stackoverflow.com/questions/6474893
复制相似问题