更改url或查询字符串而不使用jquery插件重新加载

时间:2010-05-06 11:29:37

标签: jquery url jquery-plugins

我想更改网址或查询字符串而不重新加载页面...

我已将QUERY STRING OBJECT插件用于jquery

我有example page 在点击相册时,它应该更改查询字符串......

现在我可以使用代码

更改网址
window.location.href =  $.query.set('aid', a_id);

但是重新加载页面......

并且此代码没有任何效果

 var newUrl =  $.query.set('aid', a_id);

如果不重新加载页面怎么办...

如何在不重新加载页面的情况下完成...

谢谢你 Pradyut
印度

4 个答案:

答案 0 :(得分:7)

如果不重新加载页面,则无法更改查询字符串。

答案 1 :(得分:3)

我得到了解决方案......

在#

之后更改查询字符串

您可以使用javascript

获取并设置查询字符串
location.hash = 'something=anything'

感谢
Pradyut
印度

答案 2 :(得分:2)

如果您只想更改哈希,您批准的解决方案可能会正常运行。但是,要修改查询,您需要使用history.pushState。但它仅适用于具有HTML5历史记录API的Web浏览器。

if (history.pushState) {
    var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?myNewUrlQuery=1';
    window.history.pushState({path:newurl},'',newurl);
}

我测试过,它工作正常。它不会重新加载页面,但它只允许您更改URL查询。您将无法更改协议或主机值。

了解更多信息:

http://diveintohtml5.info/history.html

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

答案 3 :(得分:0)

另一个你可能会觉得有用的解决方案是jQuery的BBQ插件。这是一个例子: http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/