📅  最后修改于: 2023-12-03 15:15:36.123000             🧑  作者: Mango
go()
方法是浏览器历史记录管理对象(History
)的一个方法,用于在浏览器历史记录中向前或向后导航。我们可以通过调用 go()
方法,并传入一个整数参数,来控制前进或后退的次数,例如 window.history.go(-1)
将回到历史记录中的上一个页面。
在 JavaScript 出现之前,浏览器行为的一部分由 HTML 控制,比如链接和表单。当用户单击链接或提交表单时,浏览器会导航到新的 URL,并加载新的文档。但是,这种方式没有提供任何历史记录或用户导航的控制。
随着 JavaScript 的出现,浏览器开始提供一个更加灵活的导航机制,即浏览器历史记录(History
)。浏览器通过维护历史记录,为 Web 应用程序提供了许多新功能。
go()
方法的使用go()
方法可以向前或向后导航浏览器历史记录。如果向前导航,传递的参数必须是一个正整数,如果向后导航,传递的参数必须是一个负整数。如果参数为 0,则不会导航,即相当于刷新当前页面。
向前导航需要传递一个正整数参数,表示要前进多少步。例如,我们可以使用以下代码向前导航一个步骤:
window.history.go(1);
向后导航需要传递一个负整数参数,表示要后退多少步。例如,我们可以使用以下代码向后导航一个步骤:
window.history.go(-1);
如果想要刷新当前页面,可以使用以下代码:
window.history.go(0);
pushState()
和 replaceState()
方法使用 pushState()
和 replaceState()
方法,我们可以通过 JavaScript 向浏览器历史记录中添加或修改条目。这两个方法在 HTML5 中引入,允许 Web 应用程序修改浏览器的地址栏 URL,而无需进行完整的页面刷新。
pushState()
方法pushState()
方法将一个新的状态添加到浏览器历史记录中。它接受三个参数:状态对象、页面标题和可选的 URL。以下示例将在浏览器历史记录中添加一个新条目:
history.pushState({ page: 1 }, "title 1", "?page=1");
replaceState()
方法replaceState()
方法用于修改当前的历史记录条目。它也接受三个参数:状态对象、页面标题和可选的 URL。以下示例将修改当前条目:
history.replaceState({ page: 2 }, "title 2", "?page=2");
浏览器历史记录管理对象(History
)提供了一种强大的导航机制,允许 Web 应用程序实现更加灵活的导航功能。go()
方法是其中的一个重要方法,可以控制历史记录中的前进和后退。同时,pushState()
和 replaceState()
方法允许 Web 应用程序修改浏览器的地址栏 URL,而无需进行完整的页面刷新。