0

这个怎么运作:

如果用户已经登录,则页面退出,如果用户已登录,则页面使用 window.location 重定向到另一个页面。

问题:

第一个页面加载页面内容片刻,然后重定向到另一个页面。我希望它在检查登录状态之前不显示任何内容

什么不起作用:

我已经尝试将脚本打开并打开,但它仍在加载 html。

我不喜欢使用的解决方案:

通过 JS 包含 html,但它会使代码在很长一段时间后变得过于混乱和难以维护。

编码:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
     <script>
            FB.Event.subscribe('auth.statusChange', function(response) {
            if(response.status == "connected"){
                window.location = "http://www.page.com/Logged.php";
            }
            });
    </script>


<p>Page content</p>  // THIS SHOULD WAIT UNTIL THE SCRIPT FINISH

</body>
</html>

解决方案:

最好的方法是在登录脚本之后使用 jquery 包含另一个带有 html 代码的文件。

我添加了一些可以提供帮助的代码:

第一文件.html:

    <html> 
  <head> 
    <script src="jquery.js"></script> 
    <script> 
    $(function(){
      $("#includedContent").load("secondFile.html"); //INCLUDE THE SECOND FILE ON THE DIV BELOW
    });
    </script> 
  </head>
<body> 
     <div id="includedContent"></div>  //INCLUDE THE SECOND FILE HERE
</body> 
</html>

第二文件.html:

<p> This is my include file </p>
4

1 回答 1

1

您可以让脚本在运行后打印页面内容吗?你只需要一个单独的文件,它可以从中取出 html 或将所有 html 作为字符串放入该脚本中。

编辑:我会这样做:

 <script>
        FB.Event.subscribe('auth.statusChange', function(response) {
        if(response.status == "connected"){
            window.location = "http://www.page.com/Logged.php";
        } else {
            window.location = "http://www.page.com/NotLogged.php";
        });
</script>

听起来你不想这样做。如果您不想使用我给您的脚本,您可以将整个页面放在一个默认隐藏/不可见的 div 标签中,并且您可以在脚本运行后使 div 可见。

于 2013-09-10T17:47:03.297 回答