2015-02-06 104 views
0

我正在研究一個應用程序,其中有很多快捷鍵用於複製某些UI操作。一個這樣的快捷鍵組合的是Alt鍵 + 小號Firefox:覆蓋Alt + s快捷鍵

document.body.addEventListener('keyup',keyUpHandler,false); 

function keyUpHandler(e) 
{ 
    e.stopPropagation(); 
    var key = e.which || e.keyCode; 
    cellKeys(e,key); 
} 

function cellKeys(e,key){ 
    if (e.altKey && key === 83) document.getElementById('saveCell').dispatchEvent(mouseclick); //alt + s  
} 

此組合鍵似乎工作偉大的除了Mozilla Firefox的所有其他瀏覽器這個快捷方式,使用瀏覽器打開歷史菜單頂部的頁面。

我正在尋找解決此問題的一些解決方法。

PS:我不能使用按鍵事件監聽器,我必須使用相同的組合鍵。還使用e.preventDefault()是徒勞的。

+0

我希望是沒有辦法做到這一點。 – MrUpsidown 2015-02-06 13:10:10

+0

@AlvaroMontoro防止瀏覽器顯示某些菜單會導致什麼安全問題。我們一直覆蓋默認的瀏覽器鍵盤快捷鍵。我猜這些日子的用戶代理足夠聰明,可以添加支票/阻止他們認爲可能導致安全漏洞的關鍵捷徑。 – 2015-02-06 13:18:55

+0

你說得對。我理解了不同的東西。 – 2015-02-06 13:37:28

回答

0

請注意,某些瀏覽器不允許您捕獲某些快捷方式!在Mozilla Firefox瀏覽器的Alt鍵 + 小號快捷的工作例如:

onkeydown = function(e){ 
    if(e.altKey && e.keyCode == 83){ 
    e.preventDefault(); 
    alert("Shotcut Pressed") 
    } 
}