簡體   English   中英

當用戶按下 CTRL + S 時如何捕獲?

[英]How do I capture when a user presses CTRL + S?

我有一個可以保存會話的網站,但我認為按鈕很丑,所以我認為快捷方式會更容易,而且我更喜歡 onkeydown HTML 標記功能。 我想使用的快捷方式是CTRL + S 例如

<input type="text" onkeydown="if(event.keyCode == CTRL+S) saveSession()">

我愛上了Mousetrap庫: https : //craig.is/killing/mice 它通過強大的瀏覽器支持規范了鍵綁定。

例如:

Mousetrap.bind('ctrl+s', function(e) {
    alert('Save!');
});

由於在 Mac 上不使用 ctrl 進行保存,因此您可以將多個組合鍵綁定到保存功能,例如

Mousetrap.bind(['ctrl+s', 'command+s'], function(e) {
    alert('Save!');
});

添加了適用於 Windows 和 Mac 的解決方案,以前僅適用於 Mac。

document.addEventListener('keydown', (e) => {
  if (e.keyCode === 83 && (navigator.platform.match('Mac') ? e.metaKey : e.ctrlKey)) {
    e.preventDefault();
    alert('captured');
  }
});

在一個function添加上面的代碼並調用它onkeydown 代碼如何工作的一些解釋..

首先,我們檢查s的鍵碼,即83 ,然后,如果在 Windows 上使用e.ctrlKey (e 是此處的事件),我們檢查用戶是否也按下了ctrl鍵,如果是 mac,則檢查metaKey

最后,我使用的(e) => {}function(e) {}的 ES6 簡寫。

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM