2011-12-19 24 views
5

Uygulama gibi bir konsol oluşturmaya çalışıyorum, bu nedenle penceredeki tüm tuşlara basıyorum ve bunlarla ilgili işleri yapıyorum (önemli değil). Sorun arka planda. Aşağıdaki kod var:Chrome ve Firefox'ta Geri Sarmayı Yakalama Farklı

$(window).bind("keypress",function(e){ 
     var code = e.keyCode || e.which; 
     if (code == 8) { 
      a = $("#console").html(); 
      $("#console").html(a.substring(0,a.length-1)); 
      currentCommand = currentCommand.substring(0,currentCommand.length-1);   
      e.preventDefault(); 
     } 

Ancak Firefox'ta, #console içeriği silinir ancak Chrome yukarıdaki kodu yürütmüyor. Çapraz tarayıcı uyumlu bir çözüme ihtiyacım var. Neyi kaçırıyorum?

ADDITION: Ben keydown Doğum/keyUp yerine basışı ait kullanırsanız

, ben characeter 'A' veya 'a' her zaman döndürür 'A' ise algılamak kuramıyorum.

+0

Olası kopyalar ([JavaScript e.keyCode IE Geri/Del yakalamaz] http://stackoverflow.com/questions/4084715/javascript-e-keycode-doesnt-catch-backspace -del-in-ie) – Keelan

+0

Evet, tam olarak bir kopya değil, ama burada cevap var. – Keelan

cevap

4

Bunu okuyun. IE bu özel tuşlar için tuşa basmaz. Belki de diğer tarayıcıların bazıları ile aynıdır.

Javascript e.keyCode doesn't catch Backspace/Del in IE

ait
+0

i yaparsak: \t '$ (pencere) .bind ("KeyDown", işlevi (e) {= e.keyCode || e.which \t \t var kodu; \t \t console.log (kodu); ' Her zaman A ya da – Mustafa

+0

tuşlarına basıp basmadığı gibi alwayws 65 gibi karakterleri de bana getirir. Belki de SHIFT düğmesine basıldığını görmeye çalışabilir misiniz? Http://stackoverflow.com/questions/3125727/how-to-differeniate-büyük harf-aşağı-in-on-onkey-on-olay-handler-m – Tys

+0

Hayır, SHIFT basılmadı eminim – Mustafa