0

我想知道如何在没有重定向的情况下更改 URL 参数。例如,用户单击通过分页实现的“第 2 页”,通过 ajax 检索数据,但我想向用户提供一个 URL,以便他可以将具有相同结果的第 2 页发送给朋友或其他任何东西。

搜索网络和 stackoverflow 每个人都说这是不可能的,只是可以更改哈希(parent.location.hash = "whatever value";)。

但这是如何完成的Airbnb?当我搜索一个城市时,结果页面的 URL 是这样的:

https://www.airbnb.at/s/london

当我点击分页的“第 2 页”时,数据是通过 Ajax 加载的,新的 URL 是这样的(没有重定向):

https://www.airbnb.at/s/london?page=2

这是怎么做的?

4

2 回答 2

1

可能pushState来自 History API。您可以在History APIManipulating the browser history阅读更多相关信息

于 2013-06-05T09:05:57.307 回答
0

我想这会对你有帮助,试试这个

 <a href="link1.php" rel="tab" class="link">link1</a> |
    <a href="link2.php" rel="tab" class="link">link2</a> |
    <a href="link3.php" rel="tab" class="link">link3</a>
    <script>
$(function(){
    $("a.link").on("click",function(e){
        e.preventDefault();// or return false; 
        window.history.pushState({path:this.href},'',this.href);
    });
 });
    </script>
于 2013-06-05T09:05:48.490 回答