以下网页(我们称之为 test.html)在 Safari、Firefox 和 Chrome 中的行为不同。这个问题特别涉及它在 Chrome 中的行为。
<html>
<body style="height: 200vh">
<script>
window.addEventListener('scroll', () => window.location.href = 'https://www.google.com')
</script>
</body>
</html>
如果我从一个空选项卡开始,转到 test.html,滚动并触发重新路由到 google.com,然后单击返回按钮,我将被发送到空选项卡页 - 即使 test.html 在如果单击并按住后退按钮,则历史记录。前进按钮也跳过它。
我尝试了一些方法,包括将侦听器更改为“wheel”,使用 onbeforeunload 重置滚动位置,以及使用布尔标志确保重新路由只被调用一次。
对这里发生的事情有任何了解吗?这是 Chrome 错误,还是按预期工作?