यह jQuery पृष्ठ उस घटना को कहता है। जो क्रॉस ब्राउज़र स्थिरता के लिए सामान्यीकृत होना चाहिए। लेकिन, ऐसा लगता है कि यह सच नहीं है।
jQuery संपत्ति नाम (जैसे, हमेशा which
, बजाय which
या keyCode
ब्राउज़र के आधार पर), लेकिन नहीं मूल्य संपत्ति का, जो नाटकीय और अधिक जटिल हो जाएगा को सामान्य।
keydown
/keyup
से प्राप्त कुंजी के लिए मूल्य न केवल ब्राउज़र द्वारा, बल्कि कीबोर्ड लेआउट द्वारा भिन्न होगा। जन वॉल्टर द्वारा JavaScript Madness: Keyboard Events पृष्ठ पर बहुत सारे विवरण हैं। अन्य चीजों के अलावा, आप उस पृष्ठ पर देख सकते हैं कि उस कुंजी के लिए, फ़ायरफ़ॉक्स आपको 109 देगा, आईई (और स्पष्ट रूप से क्रोम) आपको 18 9 देगा, और ओपेरा स्पष्ट रूप से 45 के साथ जाने के लिए उपयोग किया जाता है (लेकिन लिनक्स पर मेरे परीक्षणों में, अब वे 109 के साथ जाओ)।
प्रिंट करने योग्य कीस्ट्रोक्स के लिए (-
की तरह), आप keypress
घटना है, जो आप जिसके परिणामस्वरूप चरित्र देता है के साथ बेहतर कर रहे हैं।
स्रोत
2013-08-12 10:42:25
स्पष्टीकरण के लिए बहुत बहुत धन्यवाद! –
jQuery 1.11 के रूप में, ऐसा नहीं लगता है कि jQuery कम से कम फ़ायरफ़ॉक्स के तहत 'event.which' संपत्ति को सामान्यीकृत करता है। जैसा कि यहां देखा जा सकता है: http://jsbin.com/sozoqiro/1/edit?html,console 'event.which' और' event.keyCode' दोनों में आपके द्वारा दबाए जाने वाले कुंजी के आधार पर अलग-अलग मान हैं। एक प्रिंटिंग कैरेक्टर को दबाकर 'e.which' को पॉप्युलेट करना प्रतीत होता है जबकि उदाहरण के लिए टैब कुंजी 'e.keyCode' को पॉप्युलेट करता है और एंटर कुंजी एक ही मान के साथ' e.which' और 'e.keyCode' दोनों को पॉप्युलेट करता है। फ़ायरफ़ॉक्स में, अप्राप्य संपत्ति मान '0' पर सेट है। – DavidScherer
क्रोम में, यह सामान्यीकृत प्रतीत होता है, लेकिन क्रोम में टैब कुंजी के लिए 'कीप्रेस' ट्रिगर नहीं लग रहा है। – DavidScherer