谷歌浏览器具有键绑定 Ctrl - - 用于减小字体大小,而 Ctrl - + 用于增加字体大小。我想阻止他们。我发现他们必须<body>
,我做了:
document.body.addEventListener('keyup',
function(obj, e){e.preventDefault();}, false);
但似乎在事件发送给这些处理程序之前触发了/减少字体大小,并且在运行preventDefault()
时,它们已经完成,我的尝试失败了。如何防止这些默认绑定?
致(潜在)downvoters :仔细阅读上述问题。我从未写过我想要完全阻止缩放。我想从我提到的特定键组合中取消绑定这些功能。如果您认为不应该释放 Ctrl - - ,那么为什么Ace editor将emacs键绑定与 Ctrl - < kbd> - 绑定撤消?您是否声称Ace编辑器的开发人员(包括Mozilla Firefox开发人员等)正在做一些无用的事情?你是说你比他们优秀吗?即使你的建议不是这样做,为什么还要投票而不是把它作为答案呢?
答案 0 :(得分:2)
如果绑定到keydown
事件并使用e
作为第一个参数,则此代码将起作用:
document.body.addEventListener('keydown', function(e) {
e.preventDefault();
}, false);
请注意,此方法无法禁用浏览器的缩放功能,它只会阻止所有键盘快捷键的默认行为。例如,您仍然可以使用 Ctrl + 鼠标滚轮进行缩放。
答案 1 :(得分:1)
这个使用jQuery并检查是否:按下 Ctrl 键并按下 + / - 按钮。
$(document).keydown(function(e) {
if(e.ctrlKey
&& (e.which == 107 || e.which == 109 || e.which == 187 || e.which == 189))
{
e.preventDefault();
return false;
}
});