如何解决Firefox 5 dispatchEvent不起作用
| 我有一些使用dispatchEvent
来模拟点击的代码,相同的完全相同的代码在Chrome浏览器中工作正常,但在Firefox中不起作用。这是代码:
var evt = document.createEvent(\"MouseEvents\");
evt.initEvent(\"click\",true,true);
jQuery(\"a:contains(Next)\")[0].dispatchEvent(evt);
我正在点击加载另一个页面的链接,并且该页面在Chrome中可以正常加载,但是当我在Firebug中运行此代码或什至将其作为书签执行时,Firefox绝对不会执行任何操作。我还尝试通过设置MDC文档上显示的所有选项来尝试事件初始化的长形式,但这并没有任何作用。我到底在做什么错?
解决方法
由于您的事件看起来像是鼠标事件,因此您可以尝试使用鼠标事件,例如以下示例:
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鼠标事件类型
我还用法语写了一个关于触发DOM事件的教程;我想很容易将其翻译。
, 这是Firefox中的错误,请参阅以下内容:
https://bugzilla.mozilla.org/show_bug.cgi?id=395917
恐怕我无法解决任何问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。