【发布时间】:2016-09-19 04:24:59
【问题描述】:
我尝试使用 javascript 禁用 cmd+r 和 cmd+l 快捷方式,它在除 safari 之外的所有浏览器中都可以正常工作。
请查看jsfiddle。
var isMacOS = navigator.userAgent.toLowerCase().indexOf("mac") != -1;
$("input, textarea").on('keydown',function(ev){
checkKeyBoardEvents(ev, true);
}).on('keyup',function(ev){
checkKeyBoardEvents(ev);
}).on('keypress',function(ev){
checkKeyBoardEvents(ev);
});
function checkKeyBoardEvents(ev, printChar){
var keyCode = ev.keyCode;
var charCode = String.fromCharCode(keyCode);
if((isMacOS && ev.metaKey) || ev.ctrlKey){
$("#keyLogs").append("<p>You pressed "+ (ev.ctrlKey ? "ctrl":"cmd")+"+"+charCode);
}
if(((isMacOS && ev.metaKey) || (!isMacOS && ev.ctrlKey)) && (keyCode === 76 || keyCode === 82)){
if(printChar){
var currentValue = $(ev.target).val();
$(ev.target).val(currentValue + (currentValue.length ? ". " : "") +"You pressed cmd+"+charCode+". " );
}
ev.preventDefault();
ev.stopPropagation();
}
}
【问题讨论】:
标签: javascript safari cross-browser keyboard-shortcuts