Javascript 在不重新加载页面的情况下更改URL

Javascript 在不重新加载页面的情况下更改URL,javascript,jquery,html,Javascript,Jquery,Html,我想知道是否可以在不重新加载页面的情况下更改浏览器中URL的内容 我使用jQuery和Ajax加载页面的新部分。当我选择“产品一”时,直接链接将是mysite.com/product1,“产品二”的链接将是mysite.com/product2,但我不想将站点重新加载到这些页面。如果要防止页面重新加载,必须添加哈希 css-tricks.com有一个很好的屏幕,请看: 你不能。除非你改变散列,就像sAc告诉你的那样 但是。。我可以问一下为什么吗 你可以这样做。虽然你可能需要一个现代浏览器。看看这

我想知道是否可以在不重新加载页面的情况下更改浏览器中URL的内容


我使用jQuery和Ajax加载页面的新部分。当我选择“产品一”时,直接链接将是
mysite.com/product1
,“产品二”的链接将是
mysite.com/product2
,但我不想将站点重新加载到这些页面。

如果要防止页面重新加载,必须添加哈希

css-tricks.com有一个很好的屏幕,请看:


你不能。除非你改变散列,就像sAc告诉你的那样


但是。。我可以问一下为什么吗

你可以这样做。虽然你可能需要一个现代浏览器。看看这个页面:由谷歌Chrome团队创建(我用Chrome9阅读)。更改网页不会重新加载整个网页,但会更改URL。

现在可以使用HTML_5

查克这个链接


facebook和google也可以使用这个散列(#)属性,这在HTML5中是可能的。查看演示

您可以将URL更改为同一域中的另一个URL,但出于安全原因,无法更改域


有关详细信息,请参阅中的
历史记录
界面。

是的,可以使用HTML5历史记录API。检查并使用这个

window.history.pushState("object or string", "Title", "/new-url");

我不是OP,但我发现它很有用,当你通过ajax更改内容,然后你的访问者希望将他正在查看的页面存储到书签/通过电子邮件发送/等等。正如Yossarian所说,这是我的原因之一。另外,因为使用ajax加载页面的工作量更少,而加载内容的效果更好。@Yossarian:我问他为什么要使用site.com/product,就像最初的Q was(不是散列)一样@Paul:如果您更改了超过4-50%的页面内容,您可能需要重新考虑您的策略,因为您通过页面传输获得的速度将被DOM操作时间所抵消:)回答错误。在HTML5中,这样做是可能的。@Sasa,同意。但是试着在IE9中做到这一点:)太好了!对于跨浏览器支持,您可以使用类似history.js的库。未找到博客文章请注意IE<10:。使用类似history.js的多边形填充。