我正在尝试编写一个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。任何想法如何模拟鼠标都适用于大多数页面?
答案 0 :(得分:23)
这里有一些代码开始创建事件,更简单,适用于更多浏览器(如果您不需要指定精确的鼠标坐标)
if( document.createEvent ) {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( 'mouseover', true, false );
elem.dispatchEvent(evObj);
} else if( document.createEventObject ) {
elem.fireEvent('onmouseover');
}
希望有所帮助
答案 1 :(得分:7)
如果有人碰到这个寻找框架不可知方式来触发任何HTML和鼠标事件(并设置一些选项,如果需要),请看一下:How to simulate a mouse click using JavaScript? < / p>
答案 2 :(得分:0)
您只能在绑定了鼠标悬停事件的字段/元素上触发鼠标悬停事件。你不能只是劫持鼠标。