Javascript 刷新时从哈希加载页面
因此,我使用JQuery库编写了这段JavaScript。它的功能是将页面加载到Javascript 刷新时从哈希加载页面,javascript,jquery,html,hash,Javascript,Jquery,Html,Hash,因此,我使用JQuery库编写了这段JavaScript。它的功能是将页面加载到div中,而不是整个页面(以便更轻松地修改布局方式) 我这样做是为了成功地将“文件URL”保存在散列中,并且我这样做是为了让它正确加载,但我一辈子都不知道如何进入该页面 当我尝试转到一个名称中包含哈希的页面时(例如刷新一个页面,或者浏览一个链接/URL),它会(我想)在彼此内部复制自身两次。您可以在现场查看,然后尝试刷新除主页面之外的随机页面 有人能帮我解决这个问题吗?提前谢谢 $("document").ready
div
中,而不是整个页面(以便更轻松地修改布局方式)
我这样做是为了成功地将“文件URL”保存在散列中,并且我这样做是为了让它正确加载,但我一辈子都不知道如何进入该页面
当我尝试转到一个名称中包含哈希的页面时(例如刷新一个页面,或者浏览一个链接/URL),它会(我想)在彼此内部复制自身两次。您可以在现场查看,然后尝试刷新除主页面之外的随机页面
有人能帮我解决这个问题吗?提前谢谢
$("document").ready(function(){
$('._body').load("pages/default.html");
var locationhash = window.location.hash.replace('#','');
if ((locationhash=='pages/default.html')||(locationhash=='')){
console.log("no page, "+locationhash);
} else{
$('._body').load(window.location.hash);
console.log(locationhash);
}
$('.menubundle a, footer a').on('click', function (e) {
e.preventDefault();
var page = $(this).attr('href');
$('._body').fadeOut(1000,function(){
document.location.hash = page;
$('._body').load(page).fadeIn(1000);
});
});
});
问题出在这一行:
$('._body').load(window.location.hash);
如果检查window.location.hash,则会得到以下结果:
window.location.hash
"#pages/over_eten/feit.html"
该URL指向当前页面。你真正想要的是:
window.location.hash.slice(1) // Skip the first character
"pages/over_eten/feit.html"
另一方面,我觉得奇怪的是,您有两个对$('._body').load()的调用。第一个似乎就在console.log的正上方('No page…')。遗憾的是,这不是问题所在。。我意识到这是一件事,所以我添加了这一行
var locationhash=window.location.hash.replace('#','')代码>将第一个“#”替换为零(有效地将其删除)。此外,两个.load
函数将首先加载默认页面,然后加载请求的页面,但我将移动它,因为在回答问题时可能会更好,以避免混淆。无论如何,谢谢你的努力:)编辑:哎呀,现在我知道你在说什么了。我编写了window.location.hash
而不是locationhash
变量。问题解决了,谢谢!