2016-04-19 4 views
9

मैं एक विदेशी भाषा के लिए एक कीबोर्ड स्थापित करने की कोशिश कर रहा हूं। मैं विदेशी वर्णों में दबाए गए कुंजियों को बदलने के लिए jQuery का उपयोग कर रहा हूं। मैं उपयोग कर रहा हूँ:मैं jQuery के साथ altKey + i, u, e, n कैप्चर कैसे कर सकता हूं?

  • A - Z
  • एएलटी + A - Z
  • शिफ्ट + A - Z
  • एएलटी + शिफ्ट + ए - जेड

    मेरे कोड को छोड़कर इन 4 इन सभी के लिए काम करता है:

    • एएलटी + मैं
    • एएलटी + यू
    • एएलटी +
    • एएलटी + एन

यह फ़ायरफ़ॉक्स में ठीक काम करता है, लेकिन क्रोम और सफारी में (मैं एक मैक का उपयोग कर रहा) मैं इन एक्सेंट चिन्ह मिल - ˆ, ¨, ´, ˜ - पाठ चरित्र में जाने वाले विदेशी चरित्र की बजाय।

यहाँ कोड के कुछ है:

function type(e, char, textArea) { 
    e.preventDefault(); 
    var start = textArea[0].selectionStart; 
    var end = textArea[0].selectionEnd; 
    var len = textArea.val().length; 
    var newPos = start + char.length; 
    textArea.val(textArea.val().substring(0, start) + char + textArea.val().substring(end, len)); 
    textArea[0].setSelectionRange(newPos, newPos); 
} 
$('textarea').keydown(function(e) { 
     var textArea = $(this); 
     if (e.which == 65 && e.altKey) {type(e, 'अ', textArea);return false;} 
     if (e.which == 68 && e.altKey) {type(e, 'ड', textArea);return false;} 
     if (e.which == 73 && e.altKey) {type(e, 'इ', textArea);return false;} 
     if (e.which == 74 && e.altKey) {type(e, 'ज्ञ', textArea);return false;} 
}); 

यह काम करता है जब e.which65, 68, और 74, लेकिन नहीं 73 है।
मैं इसे सही काम करने के लिए कैसे प्राप्त कर सकता हूं?

+6

एफवाईआई, 'वापसी झूठी' 'e.preventDefault()' और 'e.stopPropagation()' के समान है। – VisioN

+0

क्या आप 'e.which' का' console.log' कर सकते हैं और यह जांच सकते हैं कि [ALT] + [I] करते समय यह क्या दिखाता है? इस [JSFiddle] (https://jsfiddle.net/z2borwez/) का उपयोग करके, यह मेरे लिए क्रोम पर काम करता है (विंडोज 10) – Jordumus

+0

@ जोर्डमस: आपके जेएसफ़िल्ड पर, मुझे 18 + 22 9 मिलते हैं। मुझे वही कोड मिलता है जो मुझे मिलता है [ एएलटी] + [यू], [एएलटी] + [ई], और [एएलटी] + [एन]। – Travis

उत्तर

0

मै मैक पर क्रोम का उपयोग कर रहा हूं और आपका जेएसफ़िल्ड उदाहरण https://jsfiddle.net/s0fmpgaj/ काम कर रहा है। जब मैं ALT + SHIFT + i दबाता हूं तो यह आपके द्वारा परिभाषित विशेष चार्ट लौटाता है।

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

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