Firefox event.keyCode problemi ve Tüm tarayıcılarda klavyeden girilen tuşu yakalamak

by Tufan Ünlü 16. Mart 2010 12:01

Merhabalar, web sayfamızda kullanıcının klavyede hangi tuşlara bastığını öğrenebilmek için javascript ile aşağıdaki kodu yazabiliriz.

var karakterKodu = event.keyCode;

Fakat bu kodun mozilla firefox ta düzgün çalışmadığını göreceğiz. Çünkü firefoxta, keyPress olayında event nesnesinin keyCode özelliği, sadece özel karakterlerin karakter kodunu döndürür. Yani sadece enter, space gibi tuşların karakter kodu dönecektir. Firefoxta bastığımız tuşun karakter kodunu alabilmek için event nesnesinin charCode  özelliğini kullanmalıyız. Event nesnesinin birde which özelliği vardır. Which de bize keyPress olayında basılan tuşun karakter kodunu döndürecektir.

Kodumuzu aşağıdaki gibi düzenlersek. Tüm tarayıcılarda uyumlu bir şekilde çalışacaktır.

var karakterKodu  = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

Böylece event nesnesinin keyCode özelliğine ulaşılamadığında  which özelliğine, ona da ulaşılamadığında charCode özelliğine ulaşılacaktır.

Tags: , ,

JavaScript

Tufan Ünlü

Tufan Ünlü 1986 yılında İstanbul’da doğdu. Liseyi; Haydarpaşa Anadolu Teknik Lisesi Otomatik Kumanda bölümünde, üniversiteyi, Marmara Üniversitesi TBMYO Endüstriyel Elektronik bölümünde okudu. Yazılıma olan merakı lisede aldığı mikroişlemciler, C++, assembly, PLC gibi derslerle başladı. Daha sonra, Bilge Adam Bilgi Teknolojileri Akademisi’nde 500 saatlik yazılım ve veritabanı uzmanlığı eğitimi aldı. Şuan Türkiye'nin önde gelen bilişim firmalarından birinde “Yazılım Geliştirme Uzmanı” olarak çalışmaktadır.  Ayrıca, Anadolu Üniversitesi Açık Öğretim Fakültesi İşletme bölümünde lisans eğitimine devam etmektedir.

Month List