$ b 覆盖浏览器的CTRL + PLUS的ZOOM键盘快捷键。 p>
它适用于Firefox,Chrome,但不适用于Safari:使用Safari,如果您在此页面上执行CTRL + PLUS,警报(hello )已启动,但浏览器的缩放也已更改!
这意味着 event.preventDefault(); 没有像它应该工作。
如何使用 event.preventDefault() code>与Safari?
注意:我已经尝试过使用StopPropagation,但它不能解决问题。 / em>
解决方案似乎这是 ctrlKey 的问题。假设你使用Mac OS X系统,你也需要检查 metaKey ,所以你的代码应该是:
<$ p $ ((event.ctrlKey || event.metaKey)&&(event.keyCode == 61 || event.keyCode == 187)) c>
This HTML / JS code :
<script> window.onload = function(e) { window.onkeydown = function(event) { if (event.ctrlKey && (event.keyCode == 61 || event.keyCode == 187)) { event.preventDefault(); alert("hello"); return false; } } } </script> <p>Blah</p>overrides the browser CTRL+PLUS 's ZOOM keyboard shortcut.
It works on Firefox, Chrome, but not with Safari : with Safari, if you do CTRL+PLUS on this page, the alert("hello") is launched, but the browser's zooming is also changed !
This means that event.preventDefault(); hasn't worked like it should have worked.
How to use event.preventDefault() with Safari ?
Note: I already tried as well with StopPropagation, but it doesn't solve the problem.
解决方案Seems like this is problem with ctrlKey. Assuming you use Mac OS X system you need to check for metaKey too, so your code should be:
if ((event.ctrlKey || event.metaKey) && (event.keyCode == 61 || event.keyCode == 187))
更多推荐
event.preventDefault()适用于Chrome,Firefox,但不适用于Safari
发布评论