我正在制作一个简单的在线申请。 我有一个带有几个按钮和一个“div”的导航栏,所有新内容将动态加载到其中,即当我点击“关于”时,它会将页面部分加载到“div”而不重新加载整个页面。 load()函数。问题是: 如果我需要链接到我的网站的“文档”部分,或者用户想要存储此类链接,那么在浏览我的网站时不会重写该网址。当用户存储默认链接时,它将始终将他链接到默认的“主页”部分。
如何重写网址以及最正确的方法是什么?
答案 0 :(得分:1)
作为选项,您可以使用location.hash
例如。用户点击<a href="#about">About</a>
并且您正在加载“关于”页面的内容。
此外,浏览器地址栏中的网址也会更改为http://mysite.com/hello.jsp#about
。
现在用户可以复制此URL并访问它。
然后在$(document).ready()
中,您可以检查location.hash
,在其中找到'#about'
锚点,然后加载适当的内容。
另一种选择是使用Backbone.js或您喜欢的任何其他JavaScript MVC框架,它将帮助您构建富客户端应用程序并为您处理这些事情。
答案 1 :(得分:1)
据我所知,适当的方法是更新URL的哈希值。类似于example.com/#About等的东西。人们可以为这些添加书签。当您在URL中读取哈希标记并加载相应页面时,您必须注意进行AJAX调用。
我要做的是在hashchange事件上进行ajax调用而不是点击。从IE8到所有现代浏览器都支持此事件。如果你想支持IE7,请使用Ben Alman的hashchange plugin。