我试图创建一个动态网站,其中仅加载新内容,其他元素保持不变。第一个问题: 我想检测例如我的home.php是否已加载到index.php的div中。我怎样才能做到这一点?因为如果未将其加载到那里,则必须使用home部分将其重定向到index.php。这是第二个问题,如果刷新页面,它总是默认显示为主页... index.php:
<ul id="nav">
<li><a href="home">Home</a></li>
<li><a href="about">About us</a></li>
<li><a href="contact">Contact</a></li>
</ul>
<div id="content"></div>
<script src="js/general.js"></script>
js / general.js:
$(document).ready(function() {
// initial
$('#content').load('home.php');
//handle menu clicks
$('ul#nav li a').click(function() {
var page = $(this).attr('href');
$('#content').load('' + page + '.php');
window.history.pushState('', '', '' + page + '.php');
return false;
});
});
我尝试了几种方法,但没有成功。
更新: 没用但是我确定我写的问题正确。我想知道如何确定直接打开home.php而不是通过index.php的人。 home.php总是必须重定向到index.php!并且必须感知打开的菜单。 因此,例如,某人打开了home.php,然后使用菜单“ Home”将其转发到index.php。
$('#content').load('' + page + '.php', function(response, status, xhr) {
if (status == "error") {
alert("Sorry but there was an error: ");
} else {
alert("Load was performed.");
}
});
仅在index.php中显示错误。如果我想阻止home.php直接打开,则没有用。
答案 0 :(得分:1)
正如我在jquery
文档中所看到的,jquery
为此提供了callback
功能。
$('#content').load('' + page + '.php', function(response, status, xhr) {
if (status == "error") {
alert("Sorry but there was an error: ");
} else {
alert("Load was performed.");
}
});