Frage

Ich bin zu kämpfen, zu verstehen, warum das folgende Problem erscheint.

Ich habe ein Eingabefeld, und ich möchte ein Autocomplete-Box, um es zu befestigen.

function input_set_autocomplete_to(obj)
{
    if( obj.type != "text" ) { return; }
    if( obj.getAttribute("rel") != "autocomplete" ) { return; }
    obj.setAttribute("autocomplete", "off");
    obj.setAttribute("uniqindex", Math.round(Math.random()*99999));
    obj.onfocus = function() {
        input_hide_autocompletes();
    };

Dies ist der Beginn der Funktion. Keine Probleme hier. Dann haken ich onkeydown und onkeyup Ereignisse, damit ich die Box zeigen kann, während der Benutzer die Eingabe ist.

    obj.onkeydown = function(e) {
        console.log('x');
    }
    obj.onkeyup = function (e) {
        console.log('z');
    }

So weit, so gut. Alles funktioniert in jedem Browser (IE, FF, Chrome, Safari) auf Windows und Linux, ich x, z bei jedem Tastendruck, außer Opera in Linux, wenn ich mit kyrillischem Eingang (z сдфг). Ereignis Es onkeyup nicht einmal Feuer.

Das System ich benutze, ist Ubuntu 9.04 mit Opera 10.10.

P. S. Während diese Frage eingeben habe ich versucht, es auf einem anderen Rechner mit ArchLinux, wieder mit Opera 10.10 und es funktioniert gut. Auch fiel ein Kollege eine Notiz, dass es nicht für ihn auch auf MacOS X 10.6 mit Safari zu arbeiten, aber ich kann ihn nicht kontaktieren, um die Version zu identifizieren

War es hilfreich?

Lösung

Nach Quirksmode , Opera keyup Handhabung gebrochen. Sie müssen stattdessen keypress auf Opera verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top