详解JavaScript操作URL的方法(单页应用常用)
JavaScript拥有许多可以操作浏览器历史记录的方法,不管是普通页面跳转,还是单页应用哈希值变化,我们都会经常与这些方法打交道,尤其在单页应用中这些方法几乎是页面路由的核心方法。本文将详细讨论这些方法。
1.document.location
location是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。事实上,location对象既是window对象的属性,又是document对象的属性。换句话说,window.location和document.location是同一个对象。这里推荐大家使用document.location的写法,以适应非浏览器文档环境。
除去为a标签设置的href属性,大家最常用的跳转方式一定就是:window.location.href=“xxx”;实际上,上面这句代码真正执行的是location.assign方法。简而言之,下面三中URL跳转的写法完全等同,都会立即打开新的URL并在浏览器的历史记录中生成一条记录:
document.location.assign("xxx");
document.location="xxx";
document.location.href="xxx";
需要注意的是,如果通过这种方式跳转的URL与当前URL完全相同,则页面会刷新,但是浏览器历史记录不会新增。
2.location.replace
功