在Vimperator插件中模拟鼠标悬停

Ste*_*han 24 javascript mouseover vimperator javascript-events

我正在尝试编写一个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');
}
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于某些页面,但不适用于其他页面.例如,它不适用于AccuWeather.任何关于如何模拟鼠标的想法都适用于大多数页面?

Kei*_*rup 23

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

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

希望有所帮助


Twe*_*eZz 7

如果有人碰到这个寻找框架无关的方法来触发任何HTML和鼠标事件(并设置一些选项,如果需要),请看一下:如何使用JavaScript模拟鼠标点击?


Dmi*_*kov 0

您只能在绑定了鼠标悬停事件的字段/元素上触发鼠标悬停事件。你不能只劫持鼠标。