我正在将所有网站的页面加载到主索引页面中,并通过将 href 拆分为段并使用 .hash 函数在主域名后添加段来更新 URL 显示,如下所示:
$('a').click(function(event) {
event.preventDefault();
var my_url = this.href;
var pathArray = this.href.split('/');
var newPathname = "";
for ( i = 3; i < pathArray.length; i++ ) {
newPathname += "/";
newPathname += pathArray[i];
}
$('body').load(my_url);
window.location.hash = newPathname;
这工作正常,但我面临一个小问题。例如,当用户访问http://www.mywebsite.com/然后单击“关于”链接时,将加载所选页面,并且地址栏显示:
http://www.mywebsite.com/#/about
但是如果用户从不同的页面开始:
http://www.mywebsite.com/#/about
然后点击之后,url就变成了:
http://www.mywebsite.com/#/about/#/about
以此类推,直到无穷大。
如何解决?
也许有一种方法可以清除散列,然后显示新的散列(即删除以 #/ 开头的所有内容,然后添加新的散列)——或者也许有更好的解决方案?