我有一个基于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 {
}
对此更好的想法? 顺便说一句,我也有这个链接栏,它应该与它一起工作(我alredy有一个代码,根据用户在此代码中点击的链接改变#)
$(document).ready(function(){
$('#sidenav a').click(function(e){
e.preventDefault();
href = $(this).attr('href');
window.location.hash = href;
urlLoad = href;
$("#middle").load($(this).attr('href'));
});
$('#topbar .profile').click(function(e){
e.preventDefault();
$("#middle").load($(this).attr('href'));
});
});
答案 0 :(得分:0)
我会这样做:
$("#middle").load(hash+".php");
而不是开关/案例
可以使用数组来检查是否允许所请求的文件。现在我们要如何实现这一点取决于你的目标 动机是要求允许的文件名: a)是吗? 因为还有其他脚本无法加载 进入文件? (您的清单详尽无遗) b)或者您可以这样做 确保所请求的文件存在且不会出现问题? (您的清单可能是动态的)
for a)您可以使用数组("files", "upload", "update" ...);
定义允许的路径,并按indexOf()检查是否
或不允许该文件
对于b)您可能会使用Ajax或检查建议的404错误 here
如果没有更多信息,我可以提供建议。我希望它有所帮助。
答案 1 :(得分:0)
这种方法有点模棱两可。此方法将从目录pages
获取页面,并将文件类型.php
附加到页面。如果文件不存在,则不会发生任何事情(如果有人试图注入未知文件)。文件加载后,它将替换#middle
function loadPage(page) {
$.get('pages/' + page + '.php', function(data) {
$('#middle').html(data);
});
}