7

मैं जावा स्क्रिप्ट में कुंजी हैंडलिंग पर काम कर रहा हूं। मैंने कुछ शोध किया है और मैं जानना चाहता हूं कि मुझे कुंजी हैंडलिंग की सही समझ है या नहीं।जावास्क्रिप्ट कुंजी हैंडलिंग और ब्राउज़र संगतता

KeyDown/KeyUp घटना नीचे कुंजी और कुंजी को ऊपर घटनाओं IE7 + और Firefox के द्वारा समर्थित हैं 3.5+ मैं ब्राउज़रों के पिछले संस्करणों की जाँच नहीं था, लेकिन मुझे लगता है कि यह है कि वे भी इन घटनाओं समर्थन करते हैं।

क्या यह कहना सही है कि कीबोर्ड पर प्रत्येक कुंजी में हमेशा एक कीकोड होगा।

CharCode

CharCode मूल्य charcodes कि वास्तविक मूल्य का प्रतिनिधित्व होगा चाबियों का keypress.Majority पर उपलब्ध है। कुछ कुंजियों में उनके साथ जुड़े चारकोड नहीं होंगे। जैसे बैकस्पेस, हटाएं, तीर कुंजी।

क्या मैं कहने के लिए सही हूं कि कीप्रेस पर चारकोड कुंजीकोड के समान होगा?

घटनाओं के आदेश

  • KeyDown
  • कुंजी दबाने
  • KeyUp

इस आदेश ब्राउज़र को ब्राउज़र से अलग है? उदाहरण के लिए मेरे पास दो कार्य हैं। सबसे पहले KeyDown घटना से जुड़ा हुआ है, दूसरा कुंजीपटल घटना से जुड़ा हुआ है। एक कुंजीपटल घटना को कॉल करना मतलब है कि कुंजीडाउन ईवेंट भी कहा जाएगा, जब मैं इन घटनाओं में से केवल एक काम करना चाहता हूं।

अंततः मैं संस्करण ब्राउज़र के आधार पर विभिन्न कुंजी हैंडलिंग दिनचर्या का उपयोग करने पर विचार कर रहा हूं। उदाहरण के लिए:

  • चेक ब्राउज़र संस्करण
  • कुंजी दिनचर्या से निपटने ब्राउज़र संस्करण

इस अतिरिक्त कोड का परिचय देंगे के आधार पर मिलता है, लेकिन रखरखाव को आसान बनाने चाहिए। साथ ही, भविष्य में, जब मैं एक अलग ब्राउज़र के लिए समर्थन प्रदान करना चाहता हूं, तो मैं बस एक और दिनचर्या जोड़ सकता हूं और यह मौजूदा चरित्र हैंडलिंग दिनचर्या को प्रभावित नहीं करेगा।

अब तक मैं http://www.quirksmode.org

उत्तर

6

पढ रहा हूं, अगले पन्नों देखें वे अपने quetions का जवाब देंगे:

onkeydown event, onkeypress event, keyCode property, charCode property, which property

+0

बहुत अच्छा है, धन्यवाद। यह देखने के लिए अंतर्निहित कार्यों में आया कि घटना होने पर बिंदु पर शिफ्ट/सीटीआर/alt आदि को दबाया जाता है या नहीं। मतलब मैं कोड की कुछ पंक्तियों से छुटकारा पा सकता हूं। –

5

निम्न आलेख जन वॉल्टर ने मुझे कभी विफल नहीं किया है और ब्राउज़र कुंजी घटनाओं पर सबसे अच्छा संसाधन दूर और दूर है मैंने देखा है: http://unixpapa.com/js/key.html। यह आपके द्वारा उठाए गए सभी सवालों का जवाब देता है।

जोर देने की एक बात यह है कि आपके निपटारे में महत्वपूर्ण घटना गुणों का सावधानीपूर्वक उपयोग करने के साथ आप लगभग निश्चित रूप से को अपने कुंजी हैंडलिंग कोड में किसी विशेष ब्राउज़र के लिए स्नीफ करने की आवश्यकता नहीं है।

+0

सुंदर लेख, क्या यह आज भी रखता है ?? –

+0

@ सूरजजैन: हां, हालांकि आधुनिक ब्राउज़र नए, बेहतर गुणों जैसे ['key'] (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) का समर्थन करते हैं। मुझे संदेह है कि पुराने गुण जल्द ही किसी भी समय चले जाएंगे हालांकि उन्हें आधिकारिक तौर पर बहिष्कृत किया गया है। –

0

2015 अपडेट:

According to MDNevent.charCode, event.keyCode और event.which सभी बहिष्कृत किया गया है। event.key यह जांचने का सबसे नया और सबसे बढ़िया तरीका है कि कौन सी कुंजी दबाई गई है।

यह उपयोग करना आसान लगता है, लेकिन ब्राउज़र समर्थन सही नहीं है। अब हमारे पास क्रोम 45+ (अभी तक AFAIK नहीं), फ़ायरफ़ॉक्स 23+ और आईई 9 + में आंशिक समर्थन है।

+1

https://xkcd.com/927/ – aiguofer