JavaScript键按在文档级别



所以我们正在考虑做一些类似下面的代码来防止打开一个新窗口。

var onkeydown = function() { 
//alert(event.keyCode) 
if ((event.keyCode == 78) && (event.ctrlKey)) { 
    alert ("No new window") 
    event.cancelBubble = true; 
    event.returnValue = false; 
    event.keyCode = false; return false; 
}}

我们关心的是,每当用户键入一个键时,这段代码就会被触发,这是有意义的。这个网站需要大量的打字和输入数据。
这是个大问题吗?代码块很小,但是我们讨论过这会影响性能吗?这是我们应该担心的事情吗?还是上面的代码足够简单,我们应该没问题?

我们不需要担心从菜单中打开一个新窗口,因为它是隐藏的。

这应该不是问题,因为它通常不会进入if语句。只要没有其他关键事件侦听器,就可以了。

您可以使用事件处理程序来监听按键,如果您按下的按键恰好是ctrl + n,则应该使用事件。preventDefault来确保它不做它应该做的事情

window.addEventListener('keydown', function(e) {
   var code = e.keyCode ? e.keyCode : e.which;
      if(code == 78 && code == 17) { //ctrl + n
         e.preventDefault();
        alert("no new window");
        //further actions
   }
});

如果一个键被按下,它会监听,然后检查你按下的键是否为ctrl和N,如果是这样,它会阻止执行默认操作,并继续执行您在函数中放入的任何操作。

最新更新