2009-05-26 32 views
24

我正在嘗試編寫一個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。任何想法如何模擬鼠標在大多數頁面上工作?

+0

我有同樣的問題。 Firefox的DejaClick插件解決了這個問題。不知道如何。 – Abhinav 2010-01-01 12:25:49

+0

你有沒有想過這個vimperator? – Luke 2010-05-19 19:10:02

+0

不幸的是沒有。我從來沒有找到一個可靠的方法來獲取鼠標懸停菜單。 – Stephan 2010-05-19 19:37:40

回答

0

您只能在綁定了鼠標懸停事件的字段/元素上觸發mouseover事件。你不能劫持鼠標。

23

這裏的一些代碼,開始創建事件,更簡單,更多的瀏覽器上運行(如果你不需要指定精確的鼠標座標)

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

希望幫助