背景:开发的h5页面 由于业务需求嵌入到app中,调整页面时ios系统无法跳转页面。 测试发现 安卓手机正常跳转url,苹果手机无法跳转。
原因:由于苹果手机浏览器拦截了新增窗口,无法正常跳转页面
措施:苹果系统改为域名重定向,跳转页面正常。
window.open 用来打开新窗口
window.location 用来替换当前页,也就是重新定位当前页
可以用以下来个实例来测试一下。
<input type="button" value="新窗口打开" onclick="window.open('https://juejin.cn/creator/home')">
<input type="button" value="当前页打开" onclick="window.location='https://juejin.cn/creator/home'">
判断设备型号代码:
if (sUserAgent.indexOf('Android') > -1 || sUserAgent.indexOf('iPhone') > -1 || sUserAgent.indexOf('iPad') > -1 ||
sUserAgent.indexOf('iPod') > -1 || sUserAgent.indexOf('Symbian') > -1) {
alert("移动端")
} else {
alert("PC端")
}
扩展:window.location或window.open如何指定target?
这是一个经常遇到的问题,特别是在用frame框架的时候
解决办法:
window.location 改为 top.location
即可在顶部链接到指定页
或
window.open("你的网址","_top");
window.open 用来打开新窗口
window.location 用来替换当前页,也就是重新定位当前页
用户不能改变document.location(因为这是当前显示文档的位置)。
window.location本身也是一个对象。
但是,可以用window.location改变当前文档 (用其它文档取代当前文档),而document.location不是对象。
服务器重定向后有可能使document.url变动,但window.location.href指的永远是访问该网页时用的URL.
大多数情况下,document.location和location.href是相同的,但是,当存在服务器重定向时,document.location包含的是已经装载的URL,而location.href包含的则是原始请求的文档的URL.
总结:
window.open()是可以在一个网站上打开另外的一个网站的地址
window.location()是只能在一个网站中打开本网站的网页