在使用javascript的时候,有时候对于经常使用的方法太熟悉而忽略了他们之间原理的细微差别.
举例如下:
window.location.href ="url";
window.location.replace(url);
这两种方式都可以让页面跳转到一个新的页面,但是其中我就忽略了跳转之后的细节,比如返回的原来的页面。比如微信端开发中,点击左上角的返回你并不想返回到上一个页面这个时候我们就需要用到window.location.replace().
window.location.href中的href其实就是a标签中的href,使用这个进行页面跳转后,可以使用浏览器的后退按钮退回到原来的页面,也可以使用history.go(-1)函数跳转到原来的页面。
window.location.replace(url)方法是让浏览器清除掉其历史中的url,重新进行url的设定。使用浏览器的后退按钮时,它将无法跳转到原来的页面,而是跳转到原来页面的上一页。
即replace() 方法不会在 History 对象中生成一个新的记录。当使用该方法时,新的 URL 将覆盖 History 对象中的当前记录。