我正在尝试创建一个函数,如果按下特定的键序列,则会产生重定向功能。我知道如何只做一个角色,但不知道如何在一系列角色之后重定向。到目前为止,这是代码:
document.onkeydown= function(key){ reactKey(key); }
function reactKey(evt) {
if (evt.keyCode == 73) {
if (evt.keyCode == 76) {
window.location = "http://www.google.com";
}
}
}
});
}
$(document).ready(main);
新代码:
document.onkeydown = function(key){reactKey(key); }
function reactKey(evt) {
if(evt.keyCode== 73) {
string key1 = 73;
}{
if(evt.keyCode== 76) {
string key2 = 76;
}{
if(key1 === 73 && key2 === 76) {
window.location = "http://www.google.com";
}
}
}
}
$(document).ready(main);
答案 0 :(得分:0)
在每个键事件上,将当前键代码或键字符添加到字符串或数组中。测试字符串/数组的结尾以获得所需的输入序列。要么将字符串/序列截断到某个限制,要么在超时时清除它,这样就不会失控。
答案 1 :(得分:0)
正如@Amadan所写,你必须在数组中存储最后两个击键并将其与所需的序列进行比较。另外,@ Boris Ivanov暗示,检查击键间隔时间会很好。
这是实施:
var INTERVAL = 500; // max. interval between two last key strokes
var aKeys = []; // two last key strokes
var laststroke = 0; // timestamp of last key stroke
document.onkeydown = function(event){
var t = (new Date()).getTime(); // current timestamp
aKeys.push(event.keyCode);
aKeys = aKeys.slice(0,2); // truncate aKeys array to 2 elements
// compare aKeys with needed sequence and check interval between key strokes
if (aKeys.join(',') == '73,76' && t - laststroke < INTERVAL) {
window.location = "http://www.google.com";
}
laststroke = t;
}