如何检测我的页面是否已加载到div中?

时间:2018-08-16 08:50:07

标签: javascript

我试图创建一个动态网站,其中仅加载新内容,其他元素保持不变。第一个问题: 我想检测例如我的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直接打开,则没有用。

1 个答案:

答案 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.");
       }
    });