Onkeyup не срабатывает в Opera при использовании кириллической раскладки

StackOverflow https://stackoverflow.com/questions/2455740

Вопрос

Я изо всех сил пытаюсь понять, почему появляется следующая проблема.

У меня есть поле ввода, и я хочу прикрепить к нему поле автозаполнения.

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();
    };

Это начало функции.Здесь нет проблем.Затем я перехватываю события onkeydown и onkeyup, чтобы показывать окно, пока пользователь печатает.

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

Все идет нормально.Все работает в каждом браузере (IE, FF, Chrome, Safari) как в Windows, так и в Linux, я получаю x,z при каждом нажатии клавиши, кроме Opera в Linux, если я использую кириллицу (например,сдфг).Событие onkeyup даже не срабатывает.

Я использую Ubuntu 9.04 с Opera 10.10.

P.S.Набирая этот вопрос, я попробовал это на другом компьютере с ArchLinux, снова с Opera 10.10, и все работает нормально.Также коллега написал, что у него тоже не работает на MacOS X 10.6 с Safari, но я не могу связаться с ним, чтобы определить версию.

Это было полезно?

Решение

В соответствии с причудливый режим, Обработка клавиш Opera не работает.Вместо этого вам нужно использовать нажатие клавиш в Opera.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top