2011-10-26 85 views
4

我的鼠標側面有兩個按鈕,其默認行爲是「後退」和「前進」。JS特殊鼠標按鈕

我想知道的是,是否有可能在JavaScript中檢測到這些鼠標按鈕的點擊,或者這些是類似於鍵盤的「播放」,「音量提高」和「無線」的「特殊」按鈕開/關「按鈕。

+0

您可以嘗試的事件是否會被解僱:http://jsfiddle.net/pimvdb/2c8gs/2/。你可以關注結果iframe並按下這些鼠標按鈕嗎? – pimvdb

回答

3

我不知道有任何特定的鼠標事件。

但是,您可以通過檢查mousedown事件的event對象輕鬆找出自己。 全屏小提琴:http://jsfiddle.net/dWfDL/1/show/

var text = typeof document.body.textContent != "undefined" ? "textContent" : "innerText"; 
window.onmousedown = function(e){ 
    //Inspect the `e` object, for example using a for(var i in e) loop, or: 
    //console.log(e); 
    var s = []; 
    for(var i in e){ 
     try{ 
      if(e[i] !== null){ 
       if(i.toUpperCase() == i) continue; //Ignore constants 
       if(typeof e[i] == "function") continue; //Ignore functions 
       if(e[i].parentNode) continue; //Ignore elements 
       if(e[i] === window) continue; //Ignore Window 
      } 
      s.push(i + " =\t\t" + e[i]); 
     }catch(err){s.push(i + " \tERROR reading property.")} 
    } 
    e.preventDefault(); 
    s = s.join("\n") + "\n\n"; 
    document.body[text] = s + document.body[text]; 
} 
//Double-click to wipe contents 
window.ondblclick = function(){ 
    document.body[text] = ""; 
} 
+1

您可能想要添加'return false'或'e.preventDefault()',因爲鼠標似乎告訴瀏覽器更改頁面。如果瀏覽器不攔截,那麼你知道它不可用。 –

+0

@DominicBarnes好點。我將在我的下一個答案更新中包含它(我正在爲此目的創建一個小提琴)。 –

+0

好的,所以我的問題的答案是「否」,但這幫助我意識到,在所有主流瀏覽器(IE 8和更低版本除外)中都支持'event.which',這讓我能夠修復代碼中的其他地方。謝謝! –