首页 > 解决方案 > 为什么我的函数没有覆盖 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(); 
    }
});

标签: javascriptjquerymicrosoft-edge

解决方案


我们再次测试了这个问题,我们发现它是由于冲突而发生的。

如您所知,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>

输出:

在此处输入图像描述


推荐阅读