2012-04-17 16 views
8

मुझे लगता है कि डिलीट कुंजी क्रोम में keypress ईवेंट को आग नहीं देती है, जबकि अन्य कुंजी काम करती हैं। फ़ायरफ़ॉक्स में समस्या नहीं होती है, सिर्फ क्रोम में, क्यों? यहाँ मेरी कोड है:कुंजी दबाएं कुंजी दबाएं

document.addEventListener('keypress', function (e) { 
    console.log(e); 
}, false); 

उत्तर

14

उपयोग keydown या keyup इसके बजाय, यह delete कुंजी कब्जा (और साथ ही दूसरों कि कुंजी दबाने नहीं करता है, http://www.quirksmode.org/js/keys.html देखें) के लिए

document.addEventListener('keydown', function (e) { 
    console.log(e); 
}, false); 
+0

क्षमा करें, मैंने अपने कोड में एक फ़ंक्शन लॉग परिभाषित किया है, और मैं इसे – qiu8310

+0

प्रश्न में जोड़ना भूल गया हूं बहुत, यह वास्तव में मदद करता है! – qiu8310

+0

@ qiu8310 कोई समस्या नहीं! सुनिश्चित करें कि अगर आप अपनी समस्या हल करते हैं तो आप जवाब स्वीकार करते हैं :) –

2

keypress घटना (डेल, अंत, घर, आदि ..) आईई, क्रोम और सफारी में नहीं निकाल दिया गया है .. यह केवल फ़ायरफ़ॉक्स में काम करता है।

ताकि आप keyup या keydown ईवेंट का उपयोग कर सकें क्योंकि keypress ईवेंट वास्तविक (प्रिंट करने योग्य) वर्णों के लिए इरादा है। "keydown" को निम्न स्तर पर संभाला जाता है, इसलिए यह सभी गैर-प्रिंटिंग कुंजियों जैसे DEL, End, आदि

संबंधित मुद्दे