2013-10-13 50 views
4

以下keypress事件如何在Chrome和Safari上不起作用?它在Firefox中運行良好!jQuery鍵擊CTRL + S事件不適用於Chrome?

東西我錯過了Chrome瀏覽器Safari的&?

$(window).keypress(function(event) {          

    if ((event.which == 115 && event.ctrlKey) || (event.which == 19)) { 

     // Trigger click. 
     $("form input[type=submit][name=update]",object_popup).click(); 
      alert("Keys down are Ctrl + s + Return"); 

    } else if ((event.which == 120 && event.ctrlKey) || (event.which == 19)){ 

     // Trigger click. 
     $(".ps-button-close",object_popup).click(); 
     alert("Keys down are Ctrl + x + Return"); 

    } else { 
     return true; 
    } 

    event.preventDefault(); 
    return false; 
}); 

的Chrome/Safari會回落到默認,保存的網頁,而不是當我用CTL + S和警告聲,當我使用CTL + X。

jsFiddle Demo

回答

5

您必須將代碼稍微更改爲:

$(document).keydown(function(event) { 

    var currKey=0,e=e||event; 
    currKey=e.keyCode||e.which||e.charCode; 

    if (!(String.fromCharCode(event.which).toLowerCase() == 's' && event.ctrlKey) && !(event.which == 19)) { 
     return true; 
    }  

    event.preventDefault();  
    alert("Keys down are Ctrl + s + Return");  
    return false; 

}); 

Online Example

+0

感謝。我已經嘗試過,但鉻和Safari瀏覽器沒有任何改變... :( – laukok

+0

你試過把它改爲'$(document)'而不是$(window)'嗎? –

+0

是的,我已經做到了.... – laukok

相關問題