如何使用 javascript 重定向到(或转到)其他页面


案例:
// 方式一:
window.location.href = "url";

// 方式二:
window.location.replace("url");

// 方式三:
window.location.assign("url");
使用区别:

方式一:相当于点击链接跳转到新页面,会在页面跳转历史(session History)中保存记录,你可以点击浏览器返回按钮回到上一页。

方式二:相当于 HTTP 重定向,不会在页面跳转历史(session History)中保存记录(甚至不会在浏览器的历史记录中留存),点击浏览器返回按钮将返回的是上上一页(如果上上一页存在),而不是上一页。

方式三:相当于方式一的函数式写法。理论上方式一的执行速度更快(毕竟访问属性要比执行函数速度更快)。

结论:

1、如果你只是想模仿用户点击链接 则使用 location.href

2、如果你只是需要对一个页面以进行重定向,则使用 location.replace(),但在服务器端进行重定向应该更合适。

3、在一些单元测试中,使用函数式 location.assign() 可能更适合,因为它能让用户在测试过程中模拟函数并检测参数。

其他方式:

1、window.navigate() 目前只有 IE 浏览器支持使用,火狐与谷歌浏览器不支持。 应使用标准规范写法 location.href 代替

2、window.location = "url" 同样能达到 location.href 的效果。 可能由于历史遗留依然支持这种写法,建议使用标准规范写法 location.href 代替

参考资料 Reference :
[https://developer.mozilla.org/zh-CN/docs/Web/API/Location/replace] [https://developer.mozilla.org/zh-CN/docs/Web/API/Location/assign]

back home