【发布时间】:2014-04-24 15:17:48
【问题描述】:
Google Chrome 有键绑定 Ctrl-- 用于减小字体大小和 Ctrl-+ 用于增加字体大小。我想阻止他们。我发现他们绑定到<body>,我做到了:
document.body.addEventListener('keyup',
function(obj, e){e.preventDefault();}, false);
但似乎在将事件发送到这些处理程序之前触发了 in/decreshing 字体大小,并且在运行 preventDefault() 时,它们已经完成,我的尝试失败了。如何防止这些默认绑定?
致(潜在的)反对者:仔细阅读我上面的问题。我从来没有写过我想完全防止缩放。我想将这些功能与我提到的特定组合键解除绑定。如果您认为不应该释放 Ctrl--,那么为什么 Ace editor 会使用 Ctrl- 提供 emacs 键绑定- 一定要撤消吗?您是否声称 Ace 编辑器的开发人员(包括 Mozilla Firefox 开发人员等)正在做一些无用的事情?你是说你比他们高人一等吗?即使您的建议是不这样做,为什么要投反对票而不是将其写为答案?
【问题讨论】:
-
为什么要阻止它?这是一项重要的辅助功能。
-
您必须使用 keydown。然而,你正在打一场失败的战斗。如果有人正在放大您的网站,那是因为他们需要这样做才能阅读它。您正在影响可访问性
-
为了防止它......这不是你的问题吗? (顺便说一句,我更新了我的评论,我输入得太快了)
-
在问题中指出您正试图将该组合键重新绑定到不同的行为可能很重要。就目前而言,听起来您只想禁用浏览器的缩放功能。
-
您正在特别影响用户的缩放能力。这使它与您的问题非常相关。
标签: javascript google-chrome events preventdefault