2011-04-20 69 views
0

这个问题以前已经问过,但我需要更多的跨浏览器*选项而不是git-hub。没有页面刷新的Javascript'重定向'

反正是有改变:

http://stackoverflow.com/test#hey 

到:

http://stackoverflow.com/test 
使用JavaScript

无需重新加载页面? (再次命中服务器)

*通过 '更多的跨浏览器的' 我的意思是IE7 + FF3.5 +,IE6不,等等

+0

目的是什么?在功能上应该没有区别,对吧? – Gareth 2011-04-20 11:09:54

+2

你的问题不是很清楚,因为你不是说你想要做什么。第一个URL将强制浏览器滚动到页面中的锚点,第二个URL将“击中”服务器并请求资源。没有办法改变网址来显示你想要的内容,而无需实际强制浏览器对URL做某些事情。 – 2011-04-20 11:10:24

+1

什么是“git-hub one”? – 2011-04-20 11:12:51

回答

2

您可以使用history.pushState()这一点。

这将删除哈希:

history.replaceState({}, '', location.href.split('#')[0]); 

对于跨浏览器兼容,你可以使用history.js作为填充工具。

+0

完美。谢谢 !!! – DaisyK 2011-04-20 11:31:33

+0

@Daisy:依然依赖于浏览器:您需要FF4或更新的Chrome或Safari浏览器。其他一切都不支持'history.pushState/replaceState'。 – 2011-04-20 11:58:14

+0

@Marcel:因此polyfill;) – 2011-04-20 12:02:13