[英]scrollIntoView with smooth behavior not working in chrome when raised by wheel event
[英]mailto link not working after wheel event in Chrome
我已經構建了一個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>
我花了很多時間在這上面,到目前為止,這是我能想到的唯一選擇。
根據代碼的用途,添加以下行將完成您要完成的任務。
setTimeout(function(){document.location.href = window.location.href },500);
完整的HTML:
<html>
<head>
<script type = "text/javascript">
window.addEventListener("keydown", EvKeydown);
window.addEventListener("wheel", EvWheel);
function EvWheel(ev) {
window.document.body.innerHTML += "wheel ";
setTimeout(function(){document.location.href = window.location.href },500);
window.location.href = "mailto:user@domain.com";
}
function EvKeydown(ev) {
window.document.body.innerHTML += "key ";
window.location.href = "mailto:user@domain.com";
}
</script>
</head>
<body>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.