在刷新时从哈希加载页面

时间:2016-01-05 21:34:25

标签: javascript jquery html hash

所以我使用JQuery库编写了这段JavaScript。它的功能是让页面加载到$("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); }); }); }); 而不是整个页面(以便更容易修改布局)。

我已经成功了,所以它成功地将'文件URL'保存在哈希中,并且我已经使它正确加载,但我不能为我的生活弄清楚如何去那个页面。

当我尝试转到名称中带有哈希值的页面时(例如刷新页面或浏览链接/ URL),它会在彼此内部复制两次(我认为)。您可以在 overeten.be 中看到它正在进行,然后尝试刷新随机页面 ,除了 主要页面。

有人可以帮我解决这个问题吗?提前谢谢!

Private Sub CommandButton1_Click()
with sheets("Main")
    For Each Cell In .Range("C2",.range("C" & .rows.count).end(xlup))
        .range(.cells(cell.row,2),.cells(cell.row,4)).copy sheets(cell.value).range("B" & sheets(cell.value).rows.count).end(xlup).offset(1)               
    next cell
End with
End sub

1 个答案:

答案 0 :(得分:0)

问题在于这一行:

$('._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 ...')而不是。