當有人擁有修飾鍵(Shift,Alt,Ctrl)時,我的應用會更改其狀態。我使用keydown/keyup事件跟蹤修改鍵:在沒有觸發鍵盤或鼠標事件的情況下檢測按下的修飾鍵
var altPressed;
window.onkeydown = window.onkeyup = function(e) {
altPressed = e.altKey;
}
鍵盤事件不會在瀏覽器選項卡外觸發。現在,想象一下以下情形:
- 按住Shift鍵
- 點擊一個鏈接到我的應用程序,它會在新窗口中打開
- 鬆開Shift鍵
keyup
事件贏得」當它沒有被聚焦時我的頁面就會發生火災,所以我的應用程序會在我再次關注我的應用程序的選項卡時顯示,它將顯示Shift鍵仍然被按下。
如果page visibility events有修飾鍵屬性,會不錯。唉,他們沒有。
document.addEventListener('webkitvisibilitychange', function(e) {
if (document.webkitHidden) return;
e.altKey // undefined :(
}, false);
所以,你想知道在加載頁面之前哪些按鍵被按下了?如果是這樣,這可能是一個艱難的道路...... – rvighne
你能給出一個理由,你爲什麼想這麼做嗎?該頁面可能會在後臺加載,因此無法始終獲得關鍵事件 – charlee
您實際嘗試解決什麼問題?到目前爲止,看起來您只是描述了您所觀察到的行爲,而且我沒有看到您需要求解幫助的特定問題描述。 – jfriend00