我很难理解为什么会出现以下问题。
我有一个输入框,我想给它附加一个自动完成框。
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');
}
到目前为止,一切都很好。一切都适用于 Windows 和 Linux 上的每个浏览器(IE、FF、Chrome、Safari),如果我使用西里尔文输入(例如 сдфг),我在每次按键时都会得到 x、z,除了 Linux 中的 Opera。onkeyup 事件甚至不会触发。
我使用的系统是 Ubuntu 9.04 和 Opera 10.10。
PS 在输入这个问题时,我在另一台使用 ArchLinux 的机器上尝试了它,再次使用 Opera 10.10,它工作正常。还有一位同事丢下一张纸条,说在带有 Safari 的 MacOS X 10.6 上它也不适用于他,但我无法联系他以识别版本