是否可以动态更改网页的网址?

时间:2010-01-17 05:41:13

标签: php javascript url dynamic

我只是想知道,有没有办法动态更改网页地址栏中显示的网址?比如,网页上可能有两个按钮,当用户点击一个按钮时,它会(或根本不重要)刷新页面,网址为mysite.com/page1,或者如果用户点击第二个按钮按钮,地址栏中显示的网址是mysite.com/page2?

我不需要它来追逐域名,只是后面的部分。

只是想说,我不想去另一页。这必须在一页上完成。如果使用JS,PHP或.htaccess文件完成它并不重要,但它必须只用一页来完成。

4 个答案:

答案 0 :(得分:4)

在更改.location之外,您实际上只能控制window.location.hash

window.location.hash = "boo"; http://mysite.com -> http://mysite.com/#boo

这是唯一在更改网址时转到新网页的方式。所有其他方法将刷新页面或重定向页面:

  1. window.location在更改后重定向用户
  2. window.location.pathname在更改后重定向用户
  3. window.location.search在更改后重定向用户
  4. window.location.hash 重定向用户
  5. 您也可以使用相对网址

    更改非域路径
    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的文章

Dynamically change URLs using Push and Popstate