Javascript 覆盖Firefox和Chrome中的快捷键
我有一个脚本,用来打开网页的一部分,并分别在Ctrl+n和Ctrl+s上保存更改。我在IE中使用它,但在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 {
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中,您是否有警报功能干扰您的阻止默认功能