我目前正在构建一个网站,它使用JavaScript进行自定义快速导航。加载新页面时检查按键是否已被按下(JavaScript)
如果用户按下右键,他将导航到我的页面列表中的下一页,并通过按ALT +右键或左键,他可以浏览他的浏览器历史记录向前和向后导航。
这是我当前的代码:
var map = [];
window.onkeydown = window.onkeyup = function(e){
e = e || event; // to deal with IE
map[e.keyCode] = e.type == 'keydown';
if (map[18] && map[39]) { // ALT + Right
window.history.forward();
}
else if (map[18] && map[37]) { // ALT + Left
window.history.back();
}
else if (map[39]) { // Right Key
window.location.href = "{{ path('sctn_findsong') }}";
}
if (map[38]){ // Up Key
//
}
if (map[40]){ // Down Key
//
}
}
这一切工作正常,除了一个小问题: 比方说,我想去三页回来 - 如果我是一个逻辑思维的人,我首先按ALT + Left返回一个站点,然后当我在前一个站点上时,按住ALT并再次按Left返回一个站点。但是,当我返回一个站点并按住ALT时,它不会记录ALT仍然处于按下状态,因此每次到达之前的站点时都必须再次按ALT,这非常烦人。 我该如何让它按照我想要的方式工作? 帮助赞赏。
谢谢。我有一个计划B来解决我的问题,这基本上就是你在第二段中提到的,但我只是希望我忽略了一些显而易见的事情,并且这将是一个单线。 – c42 2015-02-24 10:59:15