javascript - 为什么我的函数没有覆盖 Microsoft Edge 中的 Alt+D 按键事件?
问题描述
我无法使用 JavaScript 覆盖 Microsoft Edge 中的Alt+ Dkeydown 事件;不过,它适用于所有其他浏览器。它正在导航到地址栏。
这是我的 on keydown 事件
$(document).keydown(function (e) {
if (e.altKey && e.key == "d") {
e.cancelBubble = true;
e.returnValue = false;
e.preventDefault();
e.stopPropagation();
alert();
}
});
解决方案
我们再次测试了这个问题,我们发现它是由于冲突而发生的。
如您所知,Alt + D 键是在 MS Edge 浏览器中选择地址栏的快捷键。
所以它总是执行而不是你的代码。
由于我们无法更改此快捷键,如果您可以的话,您可以尝试使用任何其他字母代替 D 组合。
例如,在一个测试中,我使用的是 E 字母。这可以解决这个问题。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).keydown(function (e) {
if (e.altKey && e.key == "e") {
e.cancelBubble = true;
e.returnValue = false;
e.preventDefault();
e.stopPropagation();
alert("hello...");
}
});
});
</script>
</head>
<body>
<h2>This is a test. Press Alt + e</h2>
</body>
</html>
输出: