2013-03-23 93 views
0

我要實現響應按鍵,於是我開始了與:來自Javascript的某些提醒會自動關閉?

window.addEventListener('keydown', function(e) { 
    alert(e.keyCode) 
}, true) 

它與大多數按鍵。當我按下某個鍵時,它會提示鍵碼。 (當然,這不是最終的設計;只是一個測試,看看它是否會使調試更容易。)

但是,我發現了一些有趣的行爲。當我使用空格鍵時,它會發生奇怪的事情。

當我按下空格鍵時,出現數字「32」(空格鍵碼)的警報。但是,當我釋放密鑰時,警報會自動關閉!

我發現使用Enter鍵時,我必須再次按下才能關閉警報。儘管沒有空間。

這是爲什麼?

+4

這是因爲空格鍵是「按下」警報上的「確定」按鈕之一,關閉它。 – 2013-03-23 14:25:39

+0

@JonathanM但是'Enter'或'Return'也是如此,當我按下它時它並沒有關閉它。 – 0x499602D2 2013-03-23 14:26:31

+0

你使用什麼瀏覽器?我無法在FF17中複製。 – 2013-03-23 14:26:31

回答

1

由於瀏覽器使用空格鍵關閉警報消息(如回車)。

解釋:有趣的行爲是瀏覽器使用空格鍵來關閉警報,所以你只會看到你的keydown/keyup對話框(在空格鍵沒有重複的情況下)

+0

哦,這很有趣。謝謝! (可以在12分鐘內接受) – Doorknob 2013-03-23 14:26:31

0

您正在觸發keydown上的警報,這意味着警報按鈕可能監聽的警報按鈕事件發生在警報已存在時,可以立即有效地移除警報。

如果你在keyup上觸發警報,這不會是一個問題。