Open
Description
#location.replace() 的使用场景
location.replace(url)的方法相比大家都比较熟悉,其作用和location.href = 'url';的目的累死,也是使用js跳转页面;当然和location.href的区别在于location.replace方法会替换掉当前页在历史记录栈中的节点,而location.href会在历史记录栈中压入一个新节点。
放到一个比较场景的场景中,在A页面中,有一个链接,点击后调整登录页面B,在登录页B登录成功后,会调整到另外一个新页面C,如果在登录页面登录成功后,使用location.href = 'C页面的url'方式跳转,进入C页面后,点击浏览器返回按钮,则会返回到登录页面B,按逻辑将是合理的,但是按交互场景来说是不合理,因此此时用户已经登录,返回到登录页面还会出现填写登录信息的界面。
根据以上场景,在登录页面登录成功后,使用location.replace('C页面的url')的方式跳转到C页面后,点击浏览器返回按钮,就会返回的A页面,因为location.replace方法吧登录页B在历史记录栈中的节点替换掉了。
本人之前在开发微信APP时,开始也是使用location.href的方式跳转,交付测试后被QA同学提出,用户明明已经登录成功了,点击微信的返回按钮,怎么又回到登录页面了;此时就是使用location.replace方法的时候了。
Metadata
Metadata
Assignees
Labels
No labels