我有一个输入框,我想附加一个自动完成框到它。
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上,所有东西都可以在每个浏览器(即FF、Chrome、Safari)中工作,我在每个按键上都可以看到x、z,除了Linux中的Opera,如果我使用西里尔字母输入(例如)。onkeyup事件甚至没有触发。
我使用的系统是带有Opera10.10的Ubuntu9.04。
另外,在输入这个问题时,我在另一台使用ArchLinux的机器上尝试了这个问题,同样是在Opera 10.10上,它工作得很好。
还有一位同事写了一封信,说在MacOSX10.6和Safari上它对他不起作用,但我无法联系他确定版本