【问题标题】:Popstate not triggering on Chrome for Android when clicking the back button单击后退按钮时,Popstate 未在 Chrome for Android 上触发
【发布时间】:2021-12-25 09:52:53
【问题描述】:

单击浏览器中的后退按钮后,我想阻止返回一页的默认行为,而是执行一项操作。我正在使用“popstate”事件监听器。以下功能(我使用的是 Vue 2)适用于所有主流浏览器,甚至适用于 Android 的 Firefox,但是当我在 Android 的 Chrome 中测试它时,它只是返回一页而根本不会触发 popstate。

mounted() {
    history.pushState(null, null, <current-url>);
    window.addEventListener("popstate", () => { alert(1) });
}

我尝试将 popstate 事件包装在 load 事件中并将其 timeOut 设置为 0,但它仍然无法在 Chrome for Android 中专门工作。我正在测试的版本是 93。

【问题讨论】:

标签: javascript google-chrome mobile pushstate popstate


【解决方案1】:

我做了更多研究,如果首先没有用户交互,Chrome 似乎不会让你使用 popstate。只要您单击某物或在移动设备上向下滚动,popsate 就会起作用,否则不会。我试图模拟与click() 的用户交互,但这也不起作用。 Chrome 似乎想要真正的用户交互。我也意识到这有点像:Chrome popstate not firing on Back Button if no user interaction

【讨论】:

    猜你喜欢
    • 2014-08-26
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2011-07-04
    • 2019-03-31
    • 2017-05-09
    相关资源
    最近更新 更多