解决使用window.open()或window.location.href跳转后返回/后退原页面不能再度跳转的问题
使用window.open()搭配参数_self(新页面替换当前页面),或使用window.location.href跳转到新页面后,再点击后退到原页面,再重新进行跳转事件时,页面不仅没有进行跳转,且没有任何反应(控制台无错误信息)。说得笼统一点,这是因为第一次跳转时window.open()或window.location.href已经记录过一个要跳转的值了,跳转或后退到原页面时,该值没有被清空
·
使用
window.open()
搭配参数_self
(新页面替换当前页面),或使用window.location.href
跳转到新页面后,再点击后退到原页面,再重新进行跳转事件时,页面不仅没有进行跳转,且没有任何反应(控制台无错误信息)。
说得笼统一点,这是因为第一次跳转时window.open()或window.location.href已经记录过一个要跳转的值了,跳转或后退到原页面时,该值没有被清空,再次执行事件时自然会没有反应。
思路:
定义一个全局变量记录window.open()打开的窗体
如过该变量被记录过,则先关闭该窗口,然后再次打开新窗口即可
原有问题的代码:
// 跳转至详情页
goDetail(row) {
// console.log(row)
window.open(`https://xxxx.xxxx.com/?id=${row.id}`, '_self')
},
解决方案:
// 跳转至详情页
goDetail(row) {
// console.log(row)
var hasGoDetail // 记录是否已跳转过页面。若不执行这一步,则在跳转详情页后返回原页面就不能再次跳转新的详情页
if (hasGoDetail) { // 已经跳转过
hasGoDetail.close() // 关闭
}
hasGoDetail = window.open(`https://xxxx.xxxx.com/?id=${row.id}`, '_self')
},
更多推荐
所有评论(0)