我所拥有的: 一个使用以下脚本显示页面的网站:
var FluidNav = {
init: function() {
$("a[href*=#]").click(function(e) {
e.preventDefault();
if($(this).attr("href").split("#")[1]) {
FluidNav.goTo($(this).attr("href").split("#")[1]);
}
});
this.goTo("home");
},
goTo: function(page) {
var next_page = $("#"+page);
var nav_item = $('nav ul li a[href=#'+page+']');
$("nav ul li").removeClass("current");
nav_item.parent().addClass("current");
FluidNav.resizePage((next_page.height() + 40), true, function() {
$(".page").removeClass("current"); next_page.addClass("current");
});
$(".page").fadeOut(500);
next_page.fadeIn(500);
单击链接时,URL 栏中的 URL 不会更改,但会显示内容。无法使用浏览器后退按钮。内部链接带有#hash
标签。例如:abc.com/#home
,,abc.com/#services
。但是,如果我abc.com/#services
在 URL 栏中输入,我将被重定向到该#home
页面。
我想要实现的目标:
当我单击一个链接时,要更改的 URL,以及将其记录在其历史记录中的浏览器。当我按下后退按钮时,该站点会生成我之前访问的页面的内容。当我打开一个新标签并输入abc.com/#services
时,将被发送到#services
页面而不是主页
我尝试过 的这些是我阅读过的资源和我尝试过的解决方案:
- 使用此处描述的 History.js 方法: https ://github.com/browserstate/history.js/我填写了所有步骤并将脚本输入到标题中,但是当我单击时,只有 URL 栏中的 URL 会发生变化一条链接。当我单击“后退”按钮时,URL 会相应更改,但不会加载内容。当我在 URL 栏中输入 URL 时,我会被发送到主页。
- 此处描述的 Ajaxify 和 Gist 方法:https ://github.com/browserstate/ajaxify 实现与上述相同,问题也相同
- 此处描述的 Davis.js 方法:https ://github.com/olivernn/davis.js 完成安装说明后没有任何效果。没变。
- 此处描述的 jQuery BBQ 插件方法:http : //benalman.com/projects/jquery-bbq-plugin/ 什么都没有,在加载网站标题中的 .js 文件时没有任何变化。
- 我读了这篇文章并理解了它:http ://diveintohtml5.info/history.html
尽管我做出了努力,但我的网站正在使用的代码中似乎有一些东西妨碍了上述方法。
非常感谢任何有关如何解决此问题的建议。