我已经构建了一个 html 页面来演示该问题。
请在 Google Chrome 中加载此文档:
<html>
<head>
<script language="javascript">
var allow = true;
window.addEventListener("keydown", EvKeydown);
window.addEventListener("wheel", EvWheel);
function EvKeydown(ev) {
window.document.body.innerHTML += "key ";
window.location.href = "mailto:user@domain.com";
}
function EvWheel(ev) {
if (allow) {
allow = false;
window.document.body.innerHTML += "wheel ";
window.setTimeout(function() {allow = true}, 500);
window.location.href = "mailto:user@domain.com";
}
}
</script>
</head>
<body>
</body>
</html>
每次按下按键时,我的邮件程序 (MS Outlook) 都会运行。
转动滚轮仅在文档加载后第一次运行,并且之前没有按下任何键。
单击任何鼠标按钮都会“重置”该按钮,然后滚轮会再次运行它,但仅一次。
我也在 MS IE 和 Edge 中对此进行了测试。它工作完美。
谁能解释一下吗?
最佳答案
删除allow变量和if语句,它每次都会运行
<script language="javascript">
window.addEventListener("keydown", EvKeydown);
window.addEventListener("wheel", EvWheel);
function EvKeydown(ev) {
window.document.body.innerHTML += "key ";
window.location.href = "mailto:user@domain.com";
}
function EvWheel(ev) {
window.document.body.innerHTML += "wheel ";
window.setTimeout(function() {allow = true}, 500);
window.location.href = "mailto:user@domain.com";
}
</script>
关于javascript - Chrome 中的滚轮事件后 mailto 链接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42254240/