【发布时间】:2010-04-27 05:46:03
【问题描述】:
我有一个有很多页面的网站:
例如:
首页:
http://mywebsite.com/index.html一些页面:
http://mywebsite.com/categorie/somepage.html
我决定让我的页面使用 AJAX 动态加载,而无需重新加载页面。所以我决定使用 jQuery Address 插件 (http://www.asual.com/jquery/address/docs/) 来实现深度链接和后退导航:
<script type="text/javascript" src="uploads/scripts/jquery.address-1.2rc.min.js"></script>
<script type="text/javascript">
$('a').address(function() {
return $(this).attr('href').replace(/^#/, '');
});
</script>
现在,安装插件后,如果我继续 http://mywebsite.com/index.html (HOME) 并单击 SOME PAGE 链接,jquery 会成功加载 http://mywebsite.com/categorie/somepage.html 而无需重新加载我的浏览器上的页面和地址栏显示:
http://mywebsite.com/index.html/#/categorie/somepage.html 太棒了!
但是,问题是:如果我复制这个动态生成的 URL:http://mywebsite.com/index.html/#/categorie/somepage.html
进入网络浏览器地址栏,它将进入我的网站 index.html 页面,而不是“SOME PAGE”页面。此外,前进/后退按钮无法正常工作,它们只会替换 URL 栏中的地址,但内容保持不变。
我想我需要编写一些将动态 URL 与正确页面相关联的 JavaScript 规则?
我们将不胜感激。谢谢:)
【问题讨论】:
-
需要考虑的一点:如果没有 JavaScript 的用户访问这样的链接怎么办?
-
我也在考虑同样的事情......也许是 .htaccess 重定向规则?
标签: jquery ajax deep-linking jquery-address