我尝试创建一个动态网站,其中仅加载新内容,其他元素保持不变。第一个问题: 我想检测一下,例如我的 home.php 是否已加载到 index.php 的 div 中。我怎样才能做到这一点?因为如果它没有加载到那里,它必须重定向到带有主页部分的 index.php。这是第二个问题,如果我刷新页面,它总是默认显示主页... 索引.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,然后将他转发到 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 则没有用..
最佳答案
正如我在 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.");
}
});
关于javascript - 如何检测我的页面是否已加载到 div 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51873126/