2010-03-16 48 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上使用按鍵。