使用CTRL + L阻止焦点到URL栏

时间:2015-05-22 06:54:21

标签: javascript

我正在使用类似终端的模式,使用bootstrap&我想在用户按 Ctrl + L 时清除它当他在其中写clear时就会这样做 但问题是,当我按 Ctrl + L 时,它会聚焦网址栏,而我不再关注我的页面了。
在此部分中,警报正在显示,但它仍然会在以下情况后关注URL栏:

if(event.key == "l" && event.ctrlKey)
    alert("clear it");

我已经尝试过一些事情,例如在一秒钟之后聚焦我的终端,或类似的东西。但没有任何效果 你有什么想法吗?谢谢你!

3 个答案:

答案 0 :(得分:0)

这可能会有所帮助。但如果您按 L 两次而不离开 Ctrl 则无效。

抱歉,我正在使用 jQuery ,但我希望你有逻辑。

var key = '';
$(document).on('keydown', function(e) {
  key += e.keyCode;
  console.log(key);
  if (key === '9176' || key === '1776'){
    key = '';
    console.log('stopped');
    return false;
  }
});
$(document).on('keyup', function(e) {
  key = '';
});

示例http://jsbin.com/xicegu/3/edit

答案 1 :(得分:0)

嗯,我觉得这并不难 唯一有效的是e.preventDefault(),我尝试了return false,但事实并非如此。

if(event.key == "l" && event.ctrlKey)
{
    event.preventDefault();
    // ...
    // what I wanted to do
}

谢谢大家的快速回答,尤其是Pawan

答案 2 :(得分:0)

我同意Barmar的意见,但是你走了:

document.addEventListener("keydown", function(e) {
if ((navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey) && e.keyCode === 76) {
    e.preventDefault();
    return false;
}

return true;
});

http://jsfiddle.net/L8L23u9v/