如何防止从浏览器触发默认快捷方式
how to prevent the default shortcut triggering from browser
好吧,我正在尝试为Web应用程序创建自定义快捷方式。但是我有一个小问题(我试图找到解决方案,但我只找到了preventDefault
和shortcut.add
,我不太了解第二个(
我想知道如何在不调用浏览器快捷方式的情况下使用代码的自定义快捷方式。如果我使用shift key
默认的镜头切割不会禁用大写字母。
非常感谢您的帮助,来自智利的问候。
var menu_abierto=false;
$(document).on('keypress',function(e){
if(e.which==69 && e.ctrlKey && menu_abierto==false){
$('.btn-1,.btn-2 ,.btn-3').prop('disabled',true);
$('#lista-emergencias').show();
MenuLateralIzq();
listarEmergencias();
menu_abierto=true;
} else if(e.which==69 && e.ctrltKey){
$('.btn-1 ,.btn-2, .btn-3').prop("disabled",false);
$('#lista-emergencias ul li').remove();
$('#lista-emergencias ul hr').remove();
$('#lista-emergencias').hide();
OcultarMenuIzq();
menu_abierto=false;
}
});
您必须添加e.preventDefault()
以防止默认浏览器操作,然后出现自定义操作:
if( e.target.tagName.toUpperCase() != 'INPUT' ){
if(e.which==69 && e.ctrlKey && menu_abierto==false){
e.preventDefault();
$('.btn-1,.btn-2 ,.btn-3').prop('disabled',true);
$('#lista-emergencias').show();
MenuLateralIzq();
listarEmergencias();
menu_abierto=true;
} else if(e.which==69 && e.ctrltKey){
e.preventDefault();
$('.btn-1 ,.btn-2, .btn-3').prop("disabled",false);
$('#lista-emergencias ul li').remove();
$('#lista-emergencias ul hr').remove();
$('#lista-emergencias').hide();
OcultarMenuIzq();
menu_abierto=false;
}
}
如果要对输入禁用此功能,请添加if( e.target.tagName.toUpperCase() != 'INPUT' ){
。
解释:
e.target
表示当前选定的元素,tagName
获取此元素的类型,以防输入字段将返回INPUT
,toUpperCase()
只是为了确保返回的INPUT
字符串处于模式UpperCase
,!= 'INPUT'
的意思是不输入,换句话说,如果所选元素不是输入字段,那么您可以用自定义快捷方式替换浏览器快捷方式。
检查SO问题/答案javascript捕获浏览器快捷方式(ctrl + t/n/w(。
希望这有帮助。
您需要设置 2 件事:
e.stopPropagation((
防止当前事件的进一步传播。
e.preventDefault((
如果事件可取消,则取消事件,而不停止事件的进一步传播。
相关文章:
- javascript中的快捷方式融合优化
- 用于导出导入的快捷方式
- 如何制作链接到网页特定元素的桌面快捷方式
- 如何启用Emmet'的选项卡键处理程序(HTML快捷方式)
- 使用全局快捷方式(如 Spotlight/Launchy)将电子应用程序带到前台
- 有没有一种快捷方式可以让我用javascript或jQuery设置对象的字段
- 用我自己的自定义快捷方式覆盖浏览器快捷方式
- 创建一个键盘快捷方式来启动Google Chrome扩展
- 触发器快捷方式”;STRG+Plus按钮”;使用Javascript
- 动态网页的快捷方式
- 下划线/洛达什号中的快捷方式,用于(递归)设置对象的所有属性
- 将键盘快捷方式关联到鼠标事件的方法
- 替代Tinymce中的快捷方式指定
- Javascript快捷方式,将字符串附加到数组的所有值中
- 在 Mac 上的 Firebug 中继续执行脚本的快捷方式是什么?
- TinyMCE v4.3.6 - 快捷方式
- 通过 JavaScript URL 可变快捷方式扩展 HTML URL
- 用于发送 ajax/JSON 请求的 JQuery 快捷方式
- 如何防止从浏览器触发默认快捷方式
- Silverlight上的快捷方式,以及默认的浏览器快捷方式