2010-03-16 50 views
1

我在努力理解为什么会出现以下问题。Onkeyup在使用西里尔文布局时未在Opera中触发

我有一个输入框,我想附上一个自动完成框。

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。

P.S.在输入这个问题时,我用ArchLinux在另一台机器上尝试了它,再次用Opera 10.10,它工作正常。 另外一位同事放弃了一个说明,即使在MacOS X 10.6上Safari也不适用于他,但我无法联系他来确定版本

回答

1

根据quirksmode,Opera关键点处理被破坏。您需要在Opera上使用按键。

相关问题