Javascript函数类似keyIsPressed - 用于修改链接href

时间:2016-04-06 18:03:07

标签: javascript jquery keyboard-events

我需要检查现在是否按下了一个键(f.e.“A”)。我发现只有基于keyup和amp;的解决方案。 keydown事件,程序员必须记住上次触发的内容。例如:

<a href="any"
  onclick="this.href=keyPressed(65)?varLinkA:varLinkOther;"
  target="_blank">Link text
</a>

pressedKeyList=new Array();

$('body').keydown(
function (event){
    pressedKeyList[event.keyCode]=true;
}
);
$('body').keyup(
function (event){
    pressedKeyList[event.keyCode]=false;
}
);

function keyPressed(cc){
    return pressedKeyList[cc]?true:false;
}

此示例正常(在Firefox和IE中),但如果 target =“_ blank”则不行。在这种情况下,不会触发keyup事件。父窗口可能会永远等待。下次即使“A”键未关闭,您也将打开链接varLinkA。

0 个答案:

没有答案