【问题标题】:Onkeyup not firing in Opera when using cyrillic layout使用西里尔文布局时,Onkeyup 未在 Opera 中触发
【发布时间】:2010-03-16 15:36:44
【问题描述】:

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

我有一个输入框,我想给它附加一个自动完成框。

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。

附:在输入这个问题时,我在另一台使用 ArchLinux 的机器上尝试了它,再次使用 Opera 10.10,它工作正常。 一位同事还丢下一张纸条,说它在 MacOS X 10.6 和 Safari 上也不适用于他,但我无法联系他确定版本

【问题讨论】:

    标签: javascript events opera onkeyup


    【解决方案1】:

    根据quirksmode,Opera keyup 处理已损坏。您需要在 Opera 上使用 keypress。

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      相关资源
      最近更新 更多