所以我们正在考虑做一些类似下面的代码来防止打开一个新窗口。
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,如果是这样,它会阻止执行默认操作,并继续执行您在函数中放入的任何操作。