我只是想知道,有没有办法动态更改网页地址栏中显示的网址?比如,网页上可能有两个按钮,当用户点击一个按钮时,它会(或根本不重要)刷新页面,网址为mysite.com/page1,或者如果用户点击第二个按钮按钮,地址栏中显示的网址是mysite.com/page2?
我不需要它来追逐域名,只是后面的部分。
只是想说,我不想去另一页。这必须在一页上完成。如果使用JS,PHP或.htaccess文件完成它并不重要,但它必须只用一页来完成。
答案 0 :(得分:4)
在更改.location
之外,您实际上只能控制window.location.hash
。
window.location.hash = "boo"; http://mysite.com -> http://mysite.com/#boo
这是唯一在更改网址时不转到新网页的方式。所有其他方法将刷新页面或重定向页面:
window.location
在更改后重定向用户window.location.pathname
在更改后重定向用户window.location.search
在更改后重定向用户window.location.hash
后重定向用户您也可以使用相对网址
更改非域路径window.location = "page1"; // include forward-slash if necessary
// goes to http://somesite.com/page1
答案 1 :(得分:1)
您可以(并且轻松地)同时关闭/page1
和/page2
的相同页面,并按下按钮分别导航到另一个 - “刷新页面”,如您所说(即从服务器或浏览器缓存再次加载它,当然也会相应地改变地址栏中显示的内容。但是,我没有看到这样做的点是什么。
答案 2 :(得分:1)
我不太明白你想要什么。
在这两种情况下,您是否希望显示相同的页面但使用不同的网址?
在这种情况下,你可以写一个.htaccess文件重定向到/ link1和/ link2的同一页面,并将按钮指向其中一个链接。
答案 3 :(得分:0)
只是为了更新这个问题以防其他人出现。
现在可以使用pushState()
通过javascript处理。有几个库(例如History.js)旨在简化当前没有适当支持的不同浏览器的实现。但是,如果您想在不使用此类库的情况下查看简单的用法示例,请随时查看以下有关Hawkee的文章