我挣扎理解为什么下面的问题出现。

我有一个输入框,并欲一个自动填充框附加到它。

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上的每个按键,除了歌剧在Linux中,如果我使用西里尔字母输入(例如сдфг)。有onkeyup事件不会甚至引起火灾。

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

P.S。同时键入这个问题我在Opera 10.10尝试过与ArchLinux的另一台机器上,再次和它的正常工作。 另外一个同事下降了注意,它不工作对他来说太在MacOS X 10.6与Safari浏览器,但我不能与他联系,以确定该版本

有帮助吗?

解决方案

根据怪异模式,歌剧KEYUP处理被打破。您需要在Opera使用按键来代替。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top