变更网址或查询字符串wihout使用jQuery插件

问题描述:

我想改变的网址或查询字符串无需重新加载页面重新加载...变更网址或查询字符串wihout使用jQuery插件

我已经使用了QUERY STRING OBJECT的jQuery插件

我有这个example page 在上张专辑的点击就应该改变的查询字符串...

现在我可以使用代码

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

但它也适用于重载页面...

这个代码没有任何效果

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

无需重新加载页面怎么办......

我怎么也离不开谁重新加载页面...

感谢
Pradyut
印度

+2

什么你问做没有意义。如果不重新加载页面,您无法在浏览器的地址栏中更改地址。更改查询字符串会更改地址,并且必须要求页面重新加载新地址。 – meagar 2010-05-13 19:16:02

+2

这确实有道理。他正在寻找散列属性,如下所述:http://ajaxpatterns.org/Unique_URLs – Cuga 2010-09-30 04:33:51

我得到了解决......

变化#

可以获取和使用javascript

location.hash = 'something=anything' 

谢谢
设置查询字符串Pradyut
印度之后的查询字符串

+2

我不明白 - 这对你有什么帮助?你不改变查询字符串 - 你正在改变主播。 – EdenMachine 2011-01-14 00:01:25

+0

用上面的javascript读取哈希值,用js调用ajax数据修改dom元素... – 2011-01-14 04:17:32

+6

这不会改变查询字符串,它会改变锚点 – 2011-10-29 16:34:42

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

+2

这应该是公认的答案。查询和片段之间有区别[这里](http://en.wikipedia.org/wiki/Uniform_resource_locator) – nothing9 2014-11-07 15:45:31

您可能会发现有用的另一个解决方案是烧烤jQuery插件。这里有一个例子: http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/

+1

谢谢先生回复... btw我讨厌非蔬菜:-) – 2010-10-16 17:47:27

如果你只是想改变散列,你认可的解决方案可能工作正常。但是,要修改查询,您需要使用history.pushState。不过,它仅适用于使用HTML5 History API的网页浏览器。

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