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