如何在不离开页面的情况下更改浏览器中显示的URL

mjr*_*mjr 11 javascript url browser-history

是否可以使用JavaScript更改浏览器的URL,但不能离开页面?

Ada*_*dam 17

在旧版浏览器中,如果不离开页面,则无法更改地址栏中的URL.但是您可以在不离开页面的情况下更改URL的哈希部分.也就是说你可以改变www.example.com,以www.example.com#new_text用JavaScript window.location.hash = "new_text"; 一切#都可以改变.

但是,在HTML5中有一个新的历史API,允许您在域之后更改URL的一部分.因此,您仍然无法更改www.example.comwww.BankOfAmerica.com(出于安全原因),但您可以更改www.example.com/foowww.example.com/bar.

history.pushState("object or string representing the state of the page", "new title", "newURL");
Run Code Online (Sandbox Code Playgroud)

检查何时可以使用...查看哪些浏览器支持HTML5会话历史记录管理并支持新pushState方法.

此外,还有一个JavaScript库,可以跨浏览器规范化历史API,并在新浏览器中更改URL,并使用旧浏览器的哈希部分.见history.js.


mik*_*obi 5

我假设您正在谈论 URL 栏中的可见 URL。

答案是否定的,当应用程序试图诱使用户认为它在另一个站点时,这是一个主要的安全漏洞。