Keine Tastendruck-Ereignisse für bestimmte Tasten in Android-browser
Code unten funktioniert perfekt in Chrome, Firefox, IPhone, und auch in Drittanbieter-Browser auf Android. Allerdings, wenn es laufen in der nativen browser-Taste-events für Sonderzeichen wie Å, Ä und Ö auf meiner schwedischen Tastatur werden einfach nicht ausgelöst.
Das Beispiel sollte nur dem Benutzer erlauben, geben Sie ein einzelnes Zeichen in einer Zeit. Funktioniert wie ein Charme, es sei denn, ich in der android-Tasten drücken wie Å, Ä oder Ö, für die ich eingeben kann eine beliebige Anzahl von Zeichen.
Hier ein jsFiddle für alle, die wollen, um es auszuprobieren: http://jsfiddle.net/x7H6f/. Wenn u don ' T haben spezielle Tasten wie mein Schwedisch diejenigen gedruckt auf der Tastatur Zeichen wie é (gedrückt halten E) sollte den "trick".
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Key Event test</title>
</head>
<body>
<input type="text" id="a" name="test" />
<script>
document.getElementById("a").onkeypress = function(e) {
e = e || window.event;
var k = e.keyCode || e.which;
this.value = String.fromCharCode(k);
return false;
}
</script>
</body>
</html>
Und Nein, keydown-und keyup-nicht funktioniert. Hab ich was verpasst, oder ist das ein bug? Es ist schrecklich ärgerlich, wenn die Entwicklung der schwedischen Apps in PhoneGap!
Dank!
EDIT:
Wie Manor, sagt in seiner Antwort, die input
Ereignis verwendet werden kann. Hier ist ein Turnschuh, das veranschaulicht die Unterschiede zwischen den keypress
, input
, und change
Veranstaltungen: http://jsfiddle.net/Qxd76/ (verwenden Sie http://jsfiddle.net/Qxd76/show um das Ergebnis anzuzeigen, auf einem smartphone).
Ich bin anständig, sicher, es ist ein bug in der nativen browser für android, was die webviews verwenden. Ich habe nicht bestätigt, aber ich vermute, es sollte gelöst werden, nach der version 4, wie haben Sie sich verändert die browser chrome danach?
input
Ereignis nicht zurück keyCode
oder which
oder charCode
..InformationsquelleAutor Zut | 2012-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
verbrachte ich nur Zut Zeit über dieses problem. ich bin entwickeln zu hebräischen und aller hebräischen Urkunden nicht feuern Ereignis für mich.
fand ich die Lösung und ich werde geben, es kurz zu erklären, bevor
verwenden, wenn alle wichtigen Ereignisse der browser-Suche nach dem Schlüssel, den Sie drücken. Ursache irgendeinem Grund alle Urkunden in einer anderen Sprache von Englisch in android native browser ist unbekannt und dies ist der Grund, warum ist nicht das Feuer jedem Fall, wenn Sie füllen Sie die Eingabe-Charta.
die Lösung ist auf der Suche nach Veranstaltung in den Eingang und nicht auf den Schlüssel. zum Beispiel, wenn wir in der text-Eingabe .change () - Methode wird groß sein für uns.
ich bin in addEventListener () - Methode und funktioniert wie ein Charme.
dies ist der code
Meinen Tag gerettet!!!
InformationsquelleAutor g.e.manor