此HTML / JS代码:
<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>
覆盖浏览器CTRL + PLUS的ZOOM键盘快捷键。
适用于Firefox,Chrome,但适用于Safari:使用Safari,如果您在此页面上执行CTRL + PLUS,则会启动alert("hello")
,但浏览器的缩放也会更改!< / p>
这意味着event.preventDefault();
没有像它应该有效一样工作。
如何在Safari中使用event.preventDefault()
注意:我已经尝试过使用StopPropagation,但它并没有解决问题。
答案 0 :(得分:1)
似乎这是ctrlKey
的问题。假设你使用Mac OS X系统,你也需要检查metaKey
,所以你的代码应该是:
if ((event.ctrlKey || event.metaKey) && (event.keyCode == 61 || event.keyCode == 187))
答案 1 :(得分:1)
我们可能有不同的键盘布局或其他内容,但我的小键盘上的+
和-
符号的关键代码值为107和109.(http://www.asquare.net/javascript/tests/KeyCode.html)
下面的代码片段适用于我的safari。
window.onkeydown = function (event) {
if (event.ctrlKey && (event.keyCode == 107 || event.keyCode == 109)) {
event.preventDefault();
alert("hello");
}
}
&#13;
答案 2 :(得分:0)
你可以试试这个:
window.onkeydown = function(event) {
if (event.ctrlKey && (event.keyCode == 61 || event.keyCode == 187))
{
if (event.preventDefault){
event.preventDefault();
}
else {
event.returnValue = false;
}
alert("hello");
return false;
}
}
}
答案 3 :(得分:0)
缩放的关键代码在不同浏览器中有所不同:
Opera MSIE Firefox Safari Chrome
61 187 107 187 187 = +
109 189 109 189 189 - _
还可以尝试:
event.stopImmediatePropagation();
防止其他处理程序执行。