我的网站上有一个页面,通过AJAX请求相当多的内容。我遇到的问题是,如果你一直在网站上浏览并且在一个技术上没有URL的页面上,你就不能复制/粘贴URL并将其发送给某人,因为你我会在主页上结束。
我正在查看Facebook,他们使用锚点作为原始网址之前请求的网址,如下所示:http://www.facebook.com/#/somepage
(如果您在主页上并转到somepage
,这是一个AJAX请求。)
在网址上设置锚点根本不会成为问题,因为无论如何我使用<a>
标签来表示我的所有AJAX内容,但我怎样才能让mysite.come/#/some-ajax-page/
正常工作并显示some-ajax-page
应该是什么,而不只是尝试在DOM中找到名为/some-ajax-page/
的锚点?
P.S。我在我的JS和Django服务器端使用jQuery
答案 0 :(得分:4)
您可以使用document.location
对象引用当前页面的URL。这不是标准的,但是,我知道的每个浏览器都支持它。该对象的hash
属性为您提供了哈希符号后面的部分。
因此,在你的jquery .ready函数中,你可以探测document.location.hash
(对于你的例子url http://www.facebook.com/#/somepage
将评估为/somepage
),并解释它做任何必要的事情重新创建您页面的适当状态。你需要在这里做什么逻辑当然取决于你 - 我们无法闻到你的网页可以有什么状态,以及你想如何在锚文本中表示这些。
有关更多信息,请参阅位置对象的mozilla文档。 AFAIK所有浏览器都支持这些属性:https://developer.mozilla.org/en/DOM/window.location
答案 1 :(得分:1)
结帐jQuery BBQ。我们最近在一个项目中使用了类似的东西,它很漂亮。
基本思想是基于哈希监听哈希和运行函数的更改(即通过ajax获取新页面)。
答案 2 :(得分:-1)
只需从请求的URL中获取片段(您可能需要使用request.get_full_path()
),然后在服务器上正确构建页面。