2015-11-05 29 views
1

在JS,我可能有這個快捷方式觸發事件:的JavaScript字符串轉換爲ALT快捷鍵

alt + s 

我有s從一個選項。如何將s轉換爲代表該字母的正確數字?

在我的代碼中,我會有類似的東西,但將98更改爲從函數生成數字的函數,並將字符串作爲輸入。

if (e.altKey && e.keyCode == 98) { 
} 

UPDATE

我試過,但它給了錯誤的關鍵代碼:

var _stringToKey = function() { 
    string = '{{key}}'; 
    return parseInt(string.charCodeAt(0)); 
} 

{{鍵}}是由PHP的一封信代替。

旁註 我不想依賴另一個JS插件。

+0

AFAIK有沒有辦法字符串轉換成鍵碼,除了手動映射。我建議你接受'''作爲關鍵代碼,那麼你將不需要這樣的轉換。 – hindmost

+0

你能給更多的描述或代碼嗎? – Rajesh

+0

@Rajesh我現在更新了我的代碼,並不是那麼有效的例子。 –

回答

3

.charCodeAt(n)適用於角色。 e.keyCode工作的關鍵。

A!= a。但A密鑰確實等於a密鑰。

'a'.toUpperCase().charCodeAt(0) // 65 
'a'.charCodeAt(0)    // 97 
'A'.charCodeAt(0)    // 65 
'A'.toLowerCase().charCodeAt(0) // 97 

基本上,你想:

var _stringToKey = function() { 
    string = '{{key}}'; 
    return parseInt(string.toUpperCase().charCodeAt(0)); 
} 
+0

那麼它是如何與'CTRL + S'組合一起工作的?以及它如何在不同於Windows的另一個操作系統中工作?以及它如何在所有瀏覽器中工作?我很有趣。 –

+0

我解釋一下,如果你有'string ='alt + s'',結果是什麼? –

+0

它可以在PC上運行!我嘗試了alt + s和alt + b。任何人都想在Mac上試用它? –

0

你正在嘗試存在!它叫捕鼠器

https://craig.is/killing/mice

Mousetrap.bind(['command+k', 'ctrl+k'], function(e) { 
    highlight([11, 12, 13, 14]); 
    return false; 
}); 

簡潔美觀。

+0

我不想依賴另一個JS插件。這個插件的代碼大於我網站所需的所有JS。沒有選擇,但感謝這個想法。其他人可能會使用它。 –

+0

不客氣。如果你手工製作這個,你的js代碼將比捕鼠器大。但是如果你喜歡努力繪製所有的鑰匙,請按照你的心! –

+0

也許你認爲4KB的JavaScript會讓你的網頁變慢。但我相信你的未來代碼將會比這更大,而且不太優化。這是你的選擇。 –