我有一个脚本应该打开网页的一部分,并分别在 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){}
}
最佳答案
我看到了同样的问题。某些浏览器不允许您捕获某些快捷方式。看这个https://stackoverflow.com/a/7296303/1366887
某些组合键在 Chrome 4 中受到限制,但在 Chrome 3 中不受限制。看这里:https://groups.google.com/a/chromium.org/forum/?fromgroups=#!topic/chromium-bugs/Ntc1byZXHfU
这是 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();
}
});
我用过很多次,效果很好。
这是您可以查看的另一个资源:http://unixpapa.com/js/key.html
没有 Jquery:
onkeydown = function(e){
if(e.ctrlKey && e.keyCode == 'S'.charCodeAt(0)){
e.preventDefault();
//your saving code
}
}
这是一个JSFIDDLE它的工作。
关于javascript - 覆盖 Firefox 和 Chrome 中的快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911785/