1
laobobo 237 天前
惭愧啊 7 年前端的我也以为是一样的,问了下 ai , 两者还是有区别的,手动点击会记录到浏览器中,而 js 方式不会
|
3
yohane3016 237 天前
然而 Chrome 124 和 firefox 124 试了都正常后退,区别在于 chrome 要点击一次页面才会更新更新前进后退按钮的状态,firefox 是在 state 发生变动时就更新前进后退按钮的状态
|
5
DreamCMS OP @yohane3016 安卓机器不行 大部分内核还是老的
|
6
laobobo 237 天前
|
7
yohane3016 237 天前
@laobobo #6 确实应该设计如此,手机上试了好几个浏览器都是 pushState 后手动点一下屏幕就能正确返回的
|
8
NoManPlay 237 天前
模拟点击不会触发 popstate 事件
```js window.addEventListener('popstate', function(event) { if (event.state) { console.log("Page was loaded: ", event.state.page); // 根据 event.state 更新页面内容 } }); ``` |
9
southlink 237 天前
在 chrome 中,要有用户操作,插入的历史记录才会被激活,应该是为了防止有网页恶意插入历史记录不让用户返回。可以看看这个: https://html.spec.whatwg.org/multipage/interaction.html#history-action-activation
|
11
tanranran 237 天前
看了楼上的回答,涨知识了
|
12
CHTuring 237 天前
这个在移动端的 H5 活动页是很常见的,所以 H5 点全局返回按钮需要加上判断事件
``` if (document.referrer) { // 返回上一页 } else { // 返回首页 } ``` |
13
Xu3Xan89YsA7oP64 237 天前
你问的问题我不知道,但是改 hash 为啥不用 a 标签或者直接改 window.location.hash?
|