使用西里尔文布局时,Onkeyup不会在Opera中触发

时间:2010-03-16 15:36:45

标签: javascript events opera onkeyup

我很难理解为什么会出现以下问题。

我有一个输入框,我想在其上附加一个自动填充框。

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事件甚至没有开火。

我使用的系统是带有Opera 10.10的Ubuntu 9.04。

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

1 个答案:

答案 0 :(得分:1)

根据quirksmode,Opera键盘处理已被破坏。你需要在Opera上使用keypress。