页面A跳转到页面B,页面B使用window.location.href跳转第三方页面,然后在返回,页面B使用window.history.back()无法返回到页面A
ios的Safari浏览器上有的手机可以返回到页面A
有的手机不可以返回,这是为啥?
可以返回的手机打印window.history.length只增加一次
不可以返回的手机每次使用window.location.href跳转一次,window.history.length就增加一次,,Safari浏览器物理返回左滑返回都不行
页面A跳转到页面B,页面B使用window.location.href跳转第三方页面,然后在返回,页面B使用window.history.back()无法返回到页面A
ios的Safari浏览器上有的手机可以返回到页面A
有的手机不可以返回,这是为啥?
可以返回的手机打印window.history.length只增加一次
不可以返回的手机每次使用window.location.href跳转一次,window.history.length就增加一次,,Safari浏览器物理返回左滑返回都不行
回答引自chatgpt
可能与浏览器的历史记录缓存有关。在使用 window.location.href 跳转到第三方页面后,浏览器可能会缓存这个历史记录,导致后续使用 window.history.back() 返回时无法回到页面 A。
对于可以返回的手机,可能浏览器的历史记录缓存机制不同,或者浏览器本身就对历史记录缓存做了特殊处理。
为了解决这个问题,可以尝试使用下面的方法:
使用 window.location.replace() 跳转到第三方页面,而不是 window.location.href。这个方法会替换当前的历史记录,而不是添加新的历史记录,可能能够避免历史记录缓存导致的问题。
在页面 B 中,可以在跳转到第三方页面之前,使用 window.history.replaceState() 方法修改当前的历史记录,将其替换为页面 A 的历史记录。这个方法也可以避免历史记录缓存导致的问题。
在页面 A 中,可以使用 window.location.reload() 方法刷新页面,这样可以清除浏览器的历史记录缓存,避免后续的问题。