Zeigen Sie ein anderes Tastaturzeichen als das in Google Chrome eingegebene.

Ich arbeite an einer Javascript-Tastatur, mit der Benutzer verschiedene afrikanische Sprachen eingeben können. Derzeit funktioniert dies in IE8 und Firefox, aber nicht in Google Chrome ist zum Beispiel (auf meiner physischen Tastatur) 'q '(keyCode = 113) und erhalte'ɛ '(keyCode = 603) als Ausgabe, aber derzeit macht mein Code nichts in Google Chrome. Der relevante Teil meines Codes lautet wie folgt:

var k_layouts = {};  
k_layouts.Akan = {88:390,113:603};//keyCode mappings for Akan language    
k_layouts.Ga = {120:596,81:400};//keyCode mappings for Ga language  
var current_layout = "";  

//function that maps the keyCode of a **typed** key to that of the **expected** key    
function map_key_code(keycode){  
    if(k_layouts[current_layout] && k_layouts[current_layout][keycode])  
        return k_layouts[current_layout][keycode];  
    return keycode;  
}  

//function that actually changes the keyCode of a **typed** key to the **expected** value
function handle_keypress(ev){  
    var ev = ev || window.event;  
    if(ev.bubbles != null ||!ev.bubbles)  
     return true;  
    var target = ev.target || ev.srcElement;  
    var keyCode = window.event? ev.keyCode: ev.which;  
    if(keyCode == 0)  
    return true;  
    var newKeyCode = map_key_code(keyCode);  
    if(newKeyCode == keyCode)  
    return true;  
    if(target.addEventListener){ //for chrome and firefox  
    //cancel event  
    ev.preventDefault();  
    ev.stopPropagation();  
    //create new event with the keycode changed  
    var evt = document.createEvent("KeyboardEvent");  
    try{//for firefox(works fine)  
        evt.initKeyEvent("keypress",false,true,document.defaultView,ev.ctrlKey,ev.altKey,ev.shiftKey,ev.metaKey,newKeyCode,newKeyCode);  
}  
    catch(e){// for google chrome(does not work as expected)  
        evt.initKeyboardEvent("keydown",false,true,document.defaultView,ev.ctrlKey,ev.altKey,ev.shiftKey,ev.metaKey,newKeyCode,newKeyCode);  
    }  
    //dispatch new event  
    target.dispatchEvent(evt);  
    }  
    else if(target.attachEvent){// works for IE  
        ev.keyCode = newKeyCode;  
    }  
} 

Gibt es eine Möglichkeit, das zu erreichen, was ich in Chrome erreichen möchte? Oder fehlt in meinem Ansatz etwas? Ich würde mich über jede Hilfe und Gedanken freuen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage