window.location.replace()
方法用于加载新的 URL,并且替换当前页面的历史记录。与 window.location.href
或 window.location.assign()
不同,window.location.replace()
会将当前页面从浏览器历史记录中移除,因此无法通过浏览器的“后退”按钮返回到原页面。
基本语法
window.location.replace(url);
url
:要加载的新页面的 URL。可以是绝对 URL 或相对 URL。
特点:
- 替换当前历史记录:调用
replace()
后,当前页面会被新页面替换,并且新页面会成为历史记录栈中的当前项,但原页面不会保留在历史记录中。 - 不能通过后退按钮返回:由于替换了历史记录,用户无法通过浏览器的后退按钮返回到被替换的页面。
示例:
// 替换当前页面并加载新页面
window.location.replace("https://www.example.com");
// 使用相对路径来替换当前页面
window.location.replace("/newpage.html");
使用场景:
- 用户登录后重定向:用户登录后不希望用户通过浏览器的“后退”按钮回到登录页面,可以使用
replace()
来替换当前页面。 - 页面跳转但不希望留下历史记录:如果不希望用户在跳转后还能返回到当前页面(例如支付完成后跳转到感谢页面),可以使用
replace()
。
与 window.location.href
和 window.location.assign()
的对比:
window.location.href = "newUrl"
:会将新的 URL 添加到历史记录栈中,允许用户通过后退按钮返回到当前页面。window.location.assign("newUrl")
:也会将新的 URL 添加到历史记录栈中,效果与href
类似。window.location.replace("newUrl")
:替换当前页面,不会在历史记录中保留当前页面。
有些场景下你可能会需要这种替换历史记录的功能,像是在单页应用(SPA)中,处理用户认证后的页面跳转。你有这样的需求吗?
发表回复