首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firefox中的Firefox 5 dispatchEvent

Firefox中的Firefox 5 dispatchEvent
EN

Stack Overflow用户
提问于 2011-06-25 08:00:13
回答 2查看 2.9K关注 0票数 3

我有一些使用dispatchEvent模拟点击的代码,相同的代码在Chrome中运行良好,但在Firefox中不起作用。代码如下:

代码语言:javascript
复制
var evt = document.createEvent("MouseEvents");
evt.initEvent("click",true,true);
jQuery("a:contains(Next)")[0].dispatchEvent(evt);

我点击了一个加载另一个页面的链接,该页面在Chrome中加载正常,但当我在Firebug中运行这段代码时,Firefox绝对没有任何反应,甚至当我将其作为bookmarklet执行时也是如此。我还尝试了通过设置MDC文档中所示的所有选项来进行长时间的事件初始化,但这并不起任何作用。我到底做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-25 08:36:31

由于您的事件看起来是鼠标事件,因此您可能会尝试使用鼠标事件,如下例所示:

代码语言:javascript
复制
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的教程;我想翻译起来很容易。

票数 3
EN

Stack Overflow用户

发布于 2014-04-24 20:15:03

这是Firefox中的一个错误,请查看以下内容:

https://bugzilla.mozilla.org/show_bug.cgi?id=395917

恐怕我不知道有什么办法可以绕过它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6474893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档