2011-12-19 8 views
5

मैं एप्लिकेशन जैसे कंसोल बनाने की कोशिश कर रहा हूं, इसलिए मैं खिड़की पर सभी कीप्रेस पकड़ रहा हूं और उनके साथ संबंधित सामान (महत्वपूर्ण नहीं) कर रहा हूं। समस्या बैकस्पेस पर है। मैं निम्नलिखित कोड है:क्रोम और फ़ायरफ़ॉक्स पर बैकस्पेस पकड़ना अलग है

$(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(); 
     } 

हालांकि, Firefox में, #console की सामग्री को नष्ट कर दिया जाता है, लेकिन क्रोम ऊपर कोड निष्पादित नहीं करता है। मुझे एक क्रॉस-ब्राउज़र संगत समाधान की आवश्यकता है। मैं क्या खो रहा हूँ?

अलावा:

अगर मैं का उपयोग keydown/KeyUp कुंजी दबाने के बजाय, मैं अगर characeter 'ए' या 'एक' यह हमेशा रिटर्न 'ए' था का पता लगाने में असमर्थ हूँ।

+0

की संभावित डुप्लिकेट ([जावास्क्रिप्ट e.keyCode IE में बैकस्पेस/डेल पकड़ नहीं करता है] http://stackoverflow.com/questions/4084715/javascript-e-keycode-doesnt-catch-backspace -डेल-इन-यानी) – Keelan

+0

हां, सटीक डुप्लिकेट नहीं, लेकिन सवाल का उत्तर दिया गया है। – Keelan

उत्तर

4

इसे पढ़ें। आईई उन विशेष कुंजी के लिए keypress आग नहीं है। शायद यह कुछ अन्य ब्राउज़रों के साथ भी वही है।

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

+0

अगर मैं बनाने: \t '$ (विंडो) .bind (" keydown ", समारोह (ई) { \t \t वर कोड = e.keyCode || e.which; \t \t console.log (कोड);' यह हमेशा मुझे कैप्स वर्ण प्राप्त करता है जैसे कि यह alwayws 65 है या नहीं, मैं ए या – Mustafa

+0

दबा सकता हूं शायद आप यह देखने का प्रयास कर सकते हैं कि SHIFT बटन दबाया गया था? इस धागे में समझाया गया है: http://stackoverflow.com/questions/3125727/कैसे-से-differeniate-capital-letters-from-lower-in-inkeydown-event-handler-m – Tys

+0

नहीं, मुझे यकीन है कि SHIFT दबाया नहीं गया था – Mustafa

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