2013-08-11 9 views
5

this live demo (jQuery की साइट से) पर एक नज़र डालें।क्यों jQuery की घटना। जो फ़ायरफ़ॉक्स और क्रोम में अलग-अलग परिणाम देता है?

क्लिक करने - (डैश) फ़ायरफ़ॉक्स में कहा गया है कि event.which173 है, जबकि क्रोम में एक ही कर 189 पैदा करता है।

This jQuery page कहता है कि event.which क्रॉस ब्राउज़र स्थिरता के लिए सामान्यीकृत किया जाना चाहिए। लेकिन, ऐसा लगता है कि यह सच नहीं है।

यह असंगतता क्यों है?

उत्तर

4

यह jQuery पृष्ठ उस घटना को कहता है। जो क्रॉस ब्राउज़र स्थिरता के लिए सामान्यीकृत होना चाहिए। लेकिन, ऐसा लगता है कि यह सच नहीं है।

jQuery संपत्ति नाम (जैसे, हमेशा which, बजाय which या keyCode ब्राउज़र के आधार पर), लेकिन नहीं मूल्य संपत्ति का, जो नाटकीय और अधिक जटिल हो जाएगा को सामान्य।

keydown/keyup से प्राप्त कुंजी के लिए मूल्य न केवल ब्राउज़र द्वारा, बल्कि कीबोर्ड लेआउट द्वारा भिन्न होगा। जन वॉल्टर द्वारा JavaScript Madness: Keyboard Events पृष्ठ पर बहुत सारे विवरण हैं। अन्य चीजों के अलावा, आप उस पृष्ठ पर देख सकते हैं कि उस कुंजी के लिए, फ़ायरफ़ॉक्स आपको 109 देगा, आईई (और स्पष्ट रूप से क्रोम) आपको 18 9 देगा, और ओपेरा स्पष्ट रूप से 45 के साथ जाने के लिए उपयोग किया जाता है (लेकिन लिनक्स पर मेरे परीक्षणों में, अब वे 109 के साथ जाओ)।

प्रिंट करने योग्य कीस्ट्रोक्स के लिए (- की तरह), आप keypress घटना है, जो आप जिसके परिणामस्वरूप चरित्र देता है के साथ बेहतर कर रहे हैं।

+0

स्पष्टीकरण के लिए बहुत बहुत धन्यवाद! –

+0

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

+0

क्रोम में, यह सामान्यीकृत प्रतीत होता है, लेकिन क्रोम में टैब कुंजी के लिए 'कीप्रेस' ट्रिगर नहीं लग रहा है। – DavidScherer

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