event.preventDefault()适用于Chrome,Firefox,但不适用于Safari [英] event.preventDefault() works on Chrome, Firefox, but not Safari
问题描述
< script>
window.onload = function(e){
window.onkeydown = function(event){
if(event.ctrlKey&&(event.keyCode == 61 || event) keyCode == 187))
{
event.preventDefault();
alert(hello);
返回false;
}
}
}
< / script>
< p> Blah< / p>
$ b 覆盖浏览器的CTRL + PLUS的ZOOM键盘快捷键。 p>
它适用于Firefox,Chrome,但不适用于Safari:使用Safari,如果您在此页面上执行CTRL + PLUS,警报(hello )
已启动,但浏览器的缩放也已更改!
这意味着 event.preventDefault();
没有像它应该工作。
如何使用 event.preventDefault() code>与Safari?
注意:我已经尝试过使用StopPropagation,但它不能解决问题。 / em>
似乎这是 metaKey
,所以你的代码应该是:
<$ p $ ((event.ctrlKey || event.metaKey)&&(event.keyCode == 61 || event.keyCode == 187))
$ c $> 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!