Javascript Jquery将页面加载到由url中的#指定的div

Javascript Jquery将页面加载到由url中的#指定的div,javascript,jquery,html,url,hashtag,Javascript,Jquery,Html,Url,Hashtag,我有一个基于jquery的网站,根本不需要刷新。但是当你刷新时,你会被抛出到索引页面。我正试图在url中获得一个系统(index#upload将upload.php加载到#middle div)。 现在,我不知怎么地让这种系统工作了,但它一直在刷新我的div,我不确定这是否是最好的方法: if (window.location.hash) { var hash = window.location.hash.substring(1); switch(hash) {

我有一个基于jquery的网站,根本不需要刷新。但是当你刷新时,你会被抛出到索引页面。我正试图在url中获得一个系统(index#upload将upload.php加载到#middle div)。 现在,我不知怎么地让这种系统工作了,但它一直在刷新我的div,我不确定这是否是最好的方法:

if (window.location.hash) {
    var hash = window.location.hash.substring(1);

    switch(hash) {
        case "files.php":

            $("#middle").load(hash);
        break;
        case "upload.php":
            $("#middle").load(hash);
        break;
        case "update.php":
            $("#middle").load(hash);
        break;
        case "changepassord.php":
            $("#middle").load(hash);
        break;
        case "options.php":
            $("#middle").load(hash);
        break;
    }
} else {

}
有更好的主意吗? 顺便说一句,我也有这个链接栏,它应该与它一起工作(我一直有一个代码,根据用户在此代码中单击的链接来更改#)


我想这样做:

  • 不要泄露整个文件名(包括.php扩展名), 因为这使得潜在攻击者更容易找到 取而代之的是,只使用名称部分。本质上,使用 “#files”作为您的标记,并使用
    $(“#middle”).load(hash+”.php”)而不是开关/机箱,您可以
    可以使用数组检查是否允许请求的文件

  • 现在,我们将如何实现这一点取决于您的 动机是询问允许的文件名:a)是吗 因为还有其他脚本不能加载 在文件中?(您的列表是详尽的)b)还是您可以这样做 确保请求的文件存在并且不会出现问题? (您的列表可能是动态的)

    对于a)您可以使用数组
    (“文件”、“上载”、“更新”…)
    要定义允许的路径,并通过检查,是否
    或者该文件不被允许

    对于b)您可以使用Ajax或检查404错误,如建议的那样

  • 最后,将其包装在一个函数中,该函数将在 如果你需要加载内容,那么你就不必在 好几个地方


  • 没有更多的信息,我只能给出建议。我希望它能有所帮助。

    这个方法有点模棱两可。此方法将从目录
    pages
    获取页面,并将文件类型
    .php
    附加到页面。如果文件不存在,则不会发生任何事情(如果有人试图注入未知文件)。加载文件后,它将替换
    #middle

    function loadPage(page) {
        $.get('pages/' + page + '.php', function(data) {
            $('#middle').html(data);
        });
    }
    

    你能提供一个链接到你的网站,或者一把小提琴吗?我不确定我是否完全理解“一直刷新我的div”在您的上下文中的含义。
    function loadPage(page) {
        $.get('pages/' + page + '.php', function(data) {
            $('#middle').html(data);
        });
    }