我有下面的代码,我得到了浏览器的Ctrl + w事件,但它只能在Firefox中使用而不能在其他浏览器中使用。我发现keydown / keypress存在问题。有没有办法为这两个事件(keydown / keypress)的浏览器兼容性编写代码。
这是我的代码:
$(window).keydown(function (event) {
event.preventDefault();
if (event.which == 119 && event.ctrlKey) {
alert("Ctrl-W pressed");
}
return false;
});
答案 0 :(得分:0)
以下是仅针对未设置为默认值的键的解决方案
同样您不能使用JS
覆盖浏览器默认行为这是快速解决方案
解决方案1(快速)
<强> CODE 强>
$(document).keypress("w",function(e) {
if(e.ctrlKey)
alert("Ctrl+C was pressed!!");
});
小提琴 http://jsfiddle.net/J4t5d/1/
解决方案2
您可以使用js库轻松完成此操作 shortcut.js
解决方案3
你可以这样做:)
$(window).keydown(function(event) {event.preventDefault();
if (event.which == 87 && ctrlMode == true) {
alert("Ctrl-W pressed");
}
return false;
});
$(document).keydown(function(e){e.preventDefault();
if(e.ctrlKey){
ctrlMode = true;
}
});
$(document).keyup(function(e){e.preventDefault();
if(e.ctrlKey){
ctrlMode = false;
}
});
小提琴http://jsfiddle.net/J4t5d/5/
希望它可以帮助你:)
答案 1 :(得分:0)
使用keypress而不是keydown:demo
$(window).keypress(function(event) {
event.preventDefault();
if (event.which == 119 && event.ctrlKey) {
alert("Ctrl-W pressed");
}
return false;
});