location.assign和replace的区别?别再傻傻分不清!

吉云

今儿个咱来聊聊这个方法,这可是个跳转页面的好手。

我以为这玩意儿跟直接改没啥区别,不都是跳页面嘛后来我一琢磨,发现这里头还有点门道。

实践开始:

我先是打开浏览器,打开开发者工具。然后在一个页面里头,直接在控制台敲这么一句:

*("新的页面")

回车一敲,页面立马就跳过去,跟效果一样。这还不算完,我点下浏览器的“后退”按钮,又能回到原来的页面!

这就说明说明assign()方法是把新的页面地址给加到浏览历史里头,所以咱才能“后退”。

光说不练假把式,咱得再试试别的。

继续探索:

  • 我又试试这个方法,发现它也能跳转,但是!重点来,我点“后退”按钮,回不去!

这是为啥?

后来我查查资料才知道,replace()是把当前的页面地址给替换掉,也就是说,原来的页面在历史记录里头就没,所以你就回不去。

这么一比,assign()replace()的区别就清楚:

  • assign()会把新页面加到历史记录里,你能“后退”回去。
  • replace()是直接替换掉当前页面,历史记录里没有原来的页面,你“后退”不回去。

所以说,以后咱要跳转页面的时候,还得根据实际情况来选择用哪个方法。要是希望用户能“后退”,那就用assign();要是不想让用户“后退”,那就用replace()

location.assign和replace的区别?别再傻傻分不清!

今儿个就分享到这儿,希望对大伙儿有帮助!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]