Simulate Mouse Over в плагине Vimperator - PullRequest
24 голосов
/ 26 мая 2009

Я пытаюсь написать плагин 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 ]

23 голосов
/ 28 мая 2009

Вот код, с которого нужно начать, чтобы создать событие, проще и работает для большего количества браузеров (если вам не нужно указывать точные координаты мыши)

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

надеюсь, что поможет

7 голосов
/ 28 мая 2011

В случае, если кто-то столкнется с этим в поисках независимого от фреймворка способа запускающего любое событие HTML и мыши (и при необходимости установите некоторые параметры), посмотрите здесь: Как смоделировать щелчок мыши с помощью JavaScript?

0 голосов
/ 26 мая 2009

Вы можете запускать событие наведения курсора только на полях / элементах, с которыми связано событие наведения курсора мыши. Вы не можете просто похитить мышь.

...