可能重複:
Ruby on Rails keybard shortcutsRuby on Rails的keybard快捷方式
大家好 - 沒有人知道如何在我的網站使用Ruby on Rails來建立鍵盤快捷方式?例如,如果用戶想使用鍵盤快捷鍵而不是點擊按鈕/鏈接與網站進行交互,我會如何做到這一點?
任何幫助,非常感謝。
最大。
可能重複:
Ruby on Rails keybard shortcutsRuby on Rails的keybard快捷方式
大家好 - 沒有人知道如何在我的網站使用Ruby on Rails來建立鍵盤快捷方式?例如,如果用戶想使用鍵盤快捷鍵而不是點擊按鈕/鏈接與網站進行交互,我會如何做到這一點?
任何幫助,非常感謝。
最大。
最簡單的方法是爲元素的accesskey
屬性設置一個值。如果你想通過Rails的做到這一點,你可以通過傳遞一個額外的選項給submit_tag
helper方法做到這一點,像這樣:
<%=submit_tag("Save and Refresh", :accesskey => "R") %>
// Equivalent to <input type="submit" value="Save and Refresh" accesskey="R" />
這將導致該按鈕是「點擊」當Alt + R(或按Alt + Shift + R,取決於您的瀏覽器)。 accesskey
屬性可用於<input>
,<button>
和<a>
HTML元素。
如果您正在尋找更復雜的東西(例如GMail的鍵盤快捷鍵),您將不得不編寫一些javascript。它的核心將是一個事件處理程序,它監視文檔上的按鍵,然後調用其他JavaScript函數來運行您按下某個鍵時所需的代碼。下面是基於一個按鍵(這使用原型,這是Javascript庫,默認情況下Rails的用途,並且是未經測試)的設置快捷方式的一個非常簡單的方法:
$(document.body).observe("keypress", function(event)
{
var keyCode = event.which || event.keyCode; // W3C and Microsoft's event models
// have differing ways of
// determining which key was pressed
var keyChar = String.fromCharCode(keyCode); // turn a code into an actual character
switch (keyChar)
{
case 'a':
// Run code if the user presses 'a'
break;
// ...
}
});
這裏是另一個SO question與交易Javascript中的鍵盤快捷鍵。
請注意,這些解決方案都不是真的依賴於Rails。
Lokk在this site這是關於rails並提供了一個.js在應用程序上使用鍵盤快捷鍵。