解决移动端页面window.location.replace不生效的问题

简介: 解决移动端页面window.location.replace不生效的问题

背景

window.location.replace在pc端浏览器中可以正常使用,但是在移动端的h5页面包括app的webview嵌套h5页面之后,window.location.replace不生效,并不能直接替换当前历史记录

解决办法

为了解决移动端h5不兼容window.location.replace的问题,我们可以通过window.history.replaceState来代替window.location.replace

具体解决方案如下:

functionlocationReplace(url){
if(history.replaceState){
history.replaceState(null, document.title, url);
history.go(0);
  }else{
location.replace(url);
  }
}

特别需要注意的是,window.history.replaceState,其替换的url,必须和当前页面url是同源的,否则不生效

目录
相关文章
|
4月前
|
Web App开发 前端开发
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
136 0
|
4月前
|
UED
返回按钮——没有上一页的URL时,跳转到首页(document.referrer的妙用)
返回按钮——没有上一页的URL时,跳转到首页(document.referrer的妙用)
47 0
|
5月前
|
JavaScript 前端开发 UED
window.location.href的用法总结
window.location.href的用法总结
|
6月前
|
JavaScript 前端开发
location.href和 window.location的区别有这些!
location.href和 window.location的区别有这些!
1985 1
window.location对象使用
window.location对象使用
65 0
|
前端开发
前端 window 和 window.location
前端 window 和 window.location
前端 window 和 window.location
|
前端开发
location.href与window.open()的用法与区别,你都知道吗?
通常在Web开发中,打开一个页面有两种方式,一种是使用location的href属性来打开一个页面;还有一种就是使用window对象下的open()方法。
695 0
location.href与window.open()的用法与区别,你都知道吗?
|
JavaScript
BOM——Location,History,弹出框,Timing
Window History Back history.back() 方法加载历史列表中前一个 URL。等同于在浏览器中点击后退按钮。 Window History Forward history forward() 方法加载历史列表中下一个 URL。等同于在浏览器中点击前进按钮。
87 0
|
JavaScript Java
window.location.href跳转问题2
"window.location.href"、"location.href"是本页面跳转 "parent.location.href"是上一层页面跳转 "top.location.href"是最外层的页面跳转 举例说明: 如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写 "window.
1017 0
|
Web App开发 Android开发 iOS开发
微信浏览器 window.location.href
微信浏览器 window.location.href
354 0