代码之家  ›  专栏  ›  技术社区  ›  Stephan

在Vimperator插件中模拟鼠标悬停

  •  24
  • Stephan  · 技术社区  · 15 年前

    我正在尝试编写一个vimperator插件,允许使用提示模式来模拟鼠标悬停在下拉菜单上。我有提示模式工作,并且可以正确地选择附带鼠标事件的元素。问题是我的鼠标模拟功能不起作用。这就是我现在拥有的:

    function SimulateMouseOver(elem)
    {
        var evt = elem.ownerDocument.createEvent('MouseEvents');
        evt.initMouseEvent('mouseover',true,true,
            elem.ownerDocument.defaultView,0,0,0,0,0,
            false,false,false,false,0,null);
        var canceled = !elem.dispatchEvent(evt);
        if(canceled)
            alert('Event Cancelled');
    }
    

    以上代码适用于某些页面,但不适用于其他页面。例如,它对AccuWeather不起作用。有什么办法可以模拟大多数页面上的鼠标吗?

    3 回复  |  直到 10 年前
        1
  •  23
  •   Keith Bentrup    15 年前

    这里有一些代码可以用来创建事件,更简单,适用于更多浏览器(如果不需要指定确切的鼠标坐标)

            if( document.createEvent ) {
                var evObj = document.createEvent('MouseEvents');
                evObj.initEvent( 'mouseover', true, false );
                elem.dispatchEvent(evObj);
            } else if( document.createEventObject ) {
                elem.fireEvent('onmouseover');
            }
    

    希望能帮上忙

        2
  •  7
  •   Community CDub    7 年前

    万一有人撞到这里 框架不可知论 启动任何HTML和鼠标事件(并设置一些选项,如果需要)的方法如下: How to simulate a mouse click using JavaScript?

        3
  •  0
  •   Dmitri Farkov    15 年前

    只能在绑定了mouseover事件的字段/元素上触发mouseover事件。你不能只是劫持老鼠。

    推荐文章