2011-10-29 39 views
0

我似乎無法使用onkeyup事件來檢測修改鍵(特別是Alt鍵)何時可靠地釋放。有時它起作用,有時它不起作用。雖然大部分時間沒有。onkeyup爲修改鍵發射

我當前的代碼是:

document.documentElement.onkeyup = function(e) { 
    e = e || window.event; 
    if(!e.altKey) { 
     // do stuff here 
     document.documentElement.onkeyup = null; 
    } 
} 

我在IE9我工作並在文件菜單彈出可能與Prevent default event action not working...?。不過,在嘗試觸發該事件之前,我確實會解散菜單。

+0

我想說的是,爲了捕捉關鍵信息,我必須假設窗口必須處於活動狀態。如果修改器鍵在Web瀏覽器中具有其他功能,則鍵控動作可能不是跨瀏覽器的一致性。具體來說,ALT如何顯示菜單,或Win +鍵將焦點從瀏覽器中移除。 – donutdan4114

+0

這就是爲什麼我認爲我的其他問題(鏈接到)是相關的,因爲我試圖阻止菜單默認出現,但它不起作用。 –

回答

1

不直接回答你的問題,但this可能會幫助你。這是關於瀏覽器如何管理keydown/press/up的非常詳細的描述。

0

我相信,瀏覽器關鍵事件通常優先於頁面定義的事件。不過,我會建議使用jQuery,因爲我是just testing in IE9,他們似乎已經解決了這個問題。

編輯:雖然這似乎捕捉到事件,但我不認爲有可能阻止IE執行它自己的事件。

+2

對不起,但我堅決反對使用jQuery或任何其他框架。打電話給我老式的,但我寫我的JavaScript純。 –

+0

@Kolink:你應該嘗試jQuery,經過半個小時的編碼,你永遠不會回頭。不,讓那15分鐘。 :)恕我直言,當然。 johndodo

+0

@Kolink足夠公平,沒有錯。你有沒有嘗試過調用e.preventDefault()onkeydown?這可能會阻止菜單彈出。 –