Simulate Mouse Over в плагине Vimperator
Я пытаюсь написать плагин 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 ответа
Вот некоторый код для начала, чтобы создать событие, проще и работает для большего количества браузеров (если вам не нужно указывать точные координаты мыши)
if( document.createEvent ) {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( 'mouseover', true, false );
elem.dispatchEvent(evObj);
} else if( document.createEventObject ) {
elem.fireEvent('onmouseover');
}
надеюсь, это поможет
В случае, если кто-то столкнется с этим в поисках независимого от фреймворка способа запуска любого события HTML и мыши (и при необходимости установите некоторые параметры), посмотрите здесь: Как имитировать щелчок мыши с помощью JavaScript?
Вы можете инициировать событие наведения мыши только на те поля / элементы, с которыми связано событие наведения мыши. Вы не можете просто похитить мышь.