Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 覆盖Firefox和Chrome中的快捷键_Javascript_Html_Google Chrome_Firefox - Fatal编程技术网

Javascript 覆盖Firefox和Chrome中的快捷键

Javascript 覆盖Firefox和Chrome中的快捷键,javascript,html,google-chrome,firefox,Javascript,Html,Google Chrome,Firefox,我有一个脚本,用来打开网页的一部分,并分别在Ctrl+n和Ctrl+s上保存更改。我在IE中使用它,但在Firefox和Chrome中似乎不起作用。有什么想法吗 我的超控功能 function prevent(e) { try{e.stopPropagation();}catch(ex){} try{e.preventDefault()}catch(ex){} try{if (e.preventDefault) e.preventDefault(); else {

我有一个脚本,用来打开网页的一部分,并分别在Ctrl+n和Ctrl+s上保存更改。我在IE中使用它,但在Firefox和Chrome中似乎不起作用。有什么想法吗

我的超控功能

function prevent(e)
{
try{e.stopPropagation();}catch(ex){}
try{e.preventDefault()}catch(ex){}
try{if (e.preventDefault)
        e.preventDefault();
    else {
        e.cancelBubble = true;
        e.returnValue = false;
        e.keyCode = 0;
    }}  catch(ex){}
}

我也看到过同样的问题。某些浏览器不允许您捕获某些快捷方式。看看这个

有些组合键在Chrome4中有限制,但在Chrome3中没有。看这里:

下面是Javascript:

$(window).keydown(function(event) {
  if(event.ctrlKey && event.keyCode == 84) { 
    console.log("Hey! Ctrl+T event captured!");
    event.preventDefault(); 
  }
  if(event.ctrlKey && event.keyCode == 83) { 
    console.log("Hey! Ctrl+S event captured!");
    event.preventDefault(); 
  }
});
我已经用过很多次了,效果非常好

下面是另一个可以查看的重资源:

没有Jquery:

onkeydown = function(e){
  if(e.ctrlKey && e.keyCode == 'S'.charCodeAt(0)){
    e.preventDefault();
    //your saving code
  }
}

这是一个有效的例子。

这可能会有所帮助:(或者不视情况而定)我正在尝试避免使用JQuery,我已经看过了。我正在考虑更多的答案,说明某些浏览器快捷方式实际上无法被覆盖,在jQuery中完成的任何事情都可以在纯JavaScriptI中完成。我在firefox中的代码有一个奇怪的问题。当我运行你的JSFIDLE时,它工作没有问题,但是当我将它添加到我网站上的js文件时,它仍然会打开新的选项卡。你以前见过这个吗?@wolfcall你确定你链接了这个js文件吗?此外,如果新的firefox已经更新,这可能与firefox有关。确保你的js正在运行。我的js正在运行。我已经想到了,我在加载时显示了一个警报,它确实启动了。我已经在firefox 15和20中尝试过这个文件。不用担心,我已经找到了。我的代码,以激活我的保存和新项目的功能,由于某种原因,导致它发生无论如何,一旦注释出来,它的工作正常。。。我花了两天的时间才弄明白-还有更多问题要问你。在Firefox中,您是否有警报功能干扰您的阻止默认功能