Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 刷新时从哈希加载页面_Javascript_Jquery_Html_Hash - Fatal编程技术网

Javascript 刷新时从哈希加载页面

Javascript 刷新时从哈希加载页面,javascript,jquery,html,hash,Javascript,Jquery,Html,Hash,因此,我使用JQuery库编写了这段JavaScript。它的功能是将页面加载到div中,而不是整个页面(以便更轻松地修改布局方式) 我这样做是为了成功地将“文件URL”保存在散列中,并且我这样做是为了让它正确加载,但我一辈子都不知道如何进入该页面 当我尝试转到一个名称中包含哈希的页面时(例如刷新一个页面,或者浏览一个链接/URL),它会(我想)在彼此内部复制自身两次。您可以在现场查看,然后尝试刷新除主页面之外的随机页面 有人能帮我解决这个问题吗?提前谢谢 $("document").ready

因此,我使用JQuery库编写了这段JavaScript。它的功能是将页面加载到
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
变量。问题解决了,谢谢!