2011-07-06 45 views
4

我想制作一个包含大量Javascript交互的页面。但是,当用户浏览页面时,URL也必须改变。所以,当用户分享URL或保存它时,它可以使他达到他的实际状态。如何使用JavaScript和JQuery处理URL?

我该怎么做?

例子:

myapp.com/page1

myapp.com/page2

回答

6

pushState,因为看到github

+0

github的树浏览显然doens't工作在IE =/ –

+1

它在尚未赶上pushState的浏览器中优雅地退化。 – Quentin

+0

是的。这真是很好的功能!尽管在这种特殊情况下,旧技术更符合我的需求,但我想这毕竟是这个问题的最佳选择。 –

2

的URL(或位置),您可以更改,恕不重新加载页面的唯一部分,是哈希值。这是#背后的部分。许多Ajax增强型应用程序都使用此功能,包括Twitter。您可以随时更改此散列,并在页面加载时解释散列标记以将页面初始化为正确的状态。

+1

由于pushState的,这是不正确的任何更多(至少在大多数浏览器中)。像这样操作散列具有[显着的缺点](http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs) – Quentin

+0

那么,它支持最新的FF,部分支持Chrome。 IE浏览器和所有移动浏览器太糟糕了,但嘿,谁使用它们。 – GolezTrol

+0

在Chrome中得到了完全支持,Opera,Safari和Mobile Safari都支持部分支持; Opera Mobile和Android Browser支持它。 – Quentin

0

将此值:window.location.href

window.location.href = "myapp.com/page2"; 
+4

它会导致页面重新加载,这在OP所描述的情况下可能是不可取的。 – GolezTrol

+0

我认为你可能是对的 –