Я изо всех сил пытаюсь понять, почему появляется следующая проблема.
У меня есть поле ввода, и я хочу прикрепить к нему поле автозаполнения.
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, но я не могу связаться с ним, чтобы определить версию