在jquery中更改地址栏中的get参数

时间:2010-02-13 19:23:12

标签: javascript jquery ajax

当您搜索yelp时,通过添加其他搜索参数,页面不会重新加载。我认为结果会根据ajax进行更改,但是当您单击其中一个restaruants并返回上一页时。所有参数仍然存在。我注意到地址栏随着参数的变化而变化。我发现 http://www.asual.com/jquery/address/但它似乎在网址的末尾添加了#。有没有办法让它像index.php?xyz = 1而不刷新页面

3 个答案:

答案 0 :(得分:2)

出于安全原因,无法使用jquery更改URL(哈希标记之前的任何内容)。仔细观察,他们实际上是使用哈希标记:

http://www.yelp.com/search?find_desc=food&ns=1&find_loc=85022#find_desc =食品

答案 1 :(得分:0)

yelp也这样做:我重现了你提到的导航,这里是返回搜索页面时得到的网址:

http://www.yelp.com/search?find_desc=love&ns=1&find_loc=San+Francisco%2C+CA#places=CA%3ASan_Francisco%3A%3ACivic_Center%2FTenderloin

如您所见,有一个哈希值。

答案 2 :(得分:0)

#(hash)键是许多人用来构建单个网页应用程序(不重新加载)的技巧。

#来自锚点<a href="#chapter1">Chapter 1</a>上的书签。
如果单击该链接,它将滚动到页面中刚好为<a name="chapter1"></a>的文本。

当用户点击第1章链接时,网址将变为page.html#chapter1,即使地址栏中的文字发生变化,网页也不会重新加载。

这就是有趣部分的结束。

现在,如果您想使用#键,您需要构建自己的函数来处理它,或者使用像Really Simple History这样的库来帮助您管理所有跨浏览器问题,当用户单击时回来或接下来等...