我想知道是否可以在不重新加载页面的情况下更改浏览器中URL的内容?在不重新加载页面的情况下更改URL
我使用jQuery和Ajax来加载我的页面的新部分。当我选择“产品一”时,直接链接将是mysite.com/product1
,“产品二”将是mysite.com/product2
,但我不想将网站重新加载到这些页面。
我想知道是否可以在不重新加载页面的情况下更改浏览器中URL的内容?在不重新加载页面的情况下更改URL
我使用jQuery和Ajax来加载我的页面的新部分。当我选择“产品一”时,直接链接将是mysite.com/product1
,“产品二”将是mysite.com/product2
,但我不想将网站重新加载到这些页面。
你不能。只有当你改变哈希,就像sAc告诉你的一样。
但是..请问为什么?
你CAN这样做。尽管您可能需要一个现代浏览器。看看这个页面:http://www.20thingsilearned.com/由Google Chrome团队创建(我使用Chrome 9来阅读它)。更改页面不会重新加载整个网页,而是更改URL。
它现在可以通过HTML_5 ..
焯芬此链接...3210
也是Facebook和使用Hash(#)旁边这个TRIC谷歌属性
太棒了!对于跨浏览器支持,您可以使用像history.js的图书馆https://github.com/balupton/history.js – Pepper 2011-07-08 19:09:10
它看起来像链接被破坏... – 2016-11-07 16:10:18
是的,可以使用HTML5 History API。检查this page和this example
只用这一个
window.history.pushState("object or string", "Title", "/new-url");
小心IE浏览器<10:http:// caniuse的.com /#搜索= pushState的。使用像history.js这样的polyfill。 – Johann 2015-02-24 22:31:38
我不是OP,但我觉得它有用,当你通过AJAX改变你的内容,然后你的访问者希望存储他正在寻找的页面在书签/通过电子邮件发送/等.. – nothrow 2010-08-01 08:43:36
像Yossarian说,这是我的原因之一。另外,因为页面加载的负载较少使用ajax,并且加载比较好看。 – 2010-08-01 19:43:38
@Yossarian:我问他为什么要使用site.com/product,就像最初的Q(不是哈希)。 @Paul:如果你改变了超过4-50%的页面内容,你可能想重新考虑你的策略,因为你将通过页面传输获得的速度将被DOM操作时间取消:) – 2010-08-02 06:18:06