2011-05-16 50 views
5

我正在開發一個在特定網頁上運行一些javascript的擴展。如何以編程方式生成mousedown或按鍵事件?

我想模擬google文檔演示視圖頁面的'prev','next'工具欄上的點擊操作。 不幸的是,這兩個標籤都帶有與混淆的javascript對應的onmousedown事件。

如果他們是錨點, document.getElementById(「ToolbarNext」)。onclick();作品。然而,對於onmousedown來說,這一點似乎並不奏效,可能是因爲它需要鼠標座標等。 如何生成此事件?

另一種選擇是模擬DOM上的按鍵'j'或'k'。我嘗試了幾個選項,但無法弄清楚。

回答

2

嘗試dispatchEvent/fireEvent方法

+0

感謝。這解決了它。 – Arindam 2011-05-16 21:38:08

-1

您可以收集連接到onmousedown事件的功能,並執行它。 但是你必須,如果你需要它來重新創建event對象:

<input type="button" onmousedown="console.log('mousedown')" value="click me" /> 
<script> 
    var inp = document.getElementsByTagName('INPUT')[0], 
     fn = inp.onmousedown; 
     fn({target:inp/*, other properties of the event object if needed */}); 
</script> 
+0

的確切代碼是: 'var next = document.getElementById(「ToolbarNext」); var e = document.createEvent(「MouseEvent」); e.initMouseEvent(「mousedown」,true,true,window,0,0,0,0,0,0,0,0,0,null); next.fireEvent(e);' – Arindam 2011-05-17 19:57:35

+0

這是很多代碼!但這是官方的方式;)Tx – Mic 2011-05-17 21:24:47