ドロップダウンメニューでマウスオーバーをシミュレートするためのヒントモードの使用を許可する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では機能しません。ほとんどのページで機能するマウスオーバーをシミュレートする方法はありますか?
イベントを作成するための最初のコードを次に示します。よりシンプルで、より多くのブラウザーで機能します(正確なマウス座標を指定する必要がない場合)
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を使用してマウスクリックをシミュレートする方法は?
マウスオーバーイベントがバインドされているフィールド/要素でのみ、マウスオーバーイベントをトリガーできます。マウスを乗っ取るだけではいけません。