我希望能够更改页面的地址,但在进行更改时不发出任何 HTTP 请求。如何使用 JavaScript 做到这一点?
6 回答
您的意思是,我正在访问http://www.fakebank.example
并且您希望显示地址栏http://www.yourbank.example
?我认为有明显的原因这是不可能的。
您可以在不加载页面的情况下设置 location.hash,但我不确定这是否是您想要的——您的问题相当模糊。
假设你指的是浏览器地址栏中显示的地址,我不相信它可以。据我所知,设置 document.location 或 window.location 将自动触发页面重新加载。
正如 olliej 所说,您可以更改不会触发页面重新加载的哈希参数(又名片段标识符)。
您不想添加历史条目吗?只需使用location.replace(..)
.
直接回答你的问题:这是不可能的。您在问如何在不转到其他页面的情况下转到其他页面,这是无稽之谈。
虽然如果一个页面已经在浏览器缓存中(并且已经设置了一个遥远的未来日期),那么从技术上讲,用户可能能够转到该页面而无需再次从您的服务器请求它。但是你不能保证什么。
我认为您可能正在寻找的是使用框架之类的东西。在example.com/index.html
您可以设置全尺寸框架并包含不同的页面,例如example.com/page2.html
. 然后框架内的任何链接都不会更改浏览器中列出的 URL。有关信息,请参阅本教程。
您所要求的称为URL 欺骗。
Any browser allowing this has a severe security issue.