一旦执行就停止该条件

时间:2013-06-26 17:22:14

标签: php javascript facebook

问题

我在PHP try catch中使用下面提到的JS代码。基本上我正在制作Facebook应用程序。当用户会话超时时,它会显示一条看起来不太好的错误消息,但是当用户刷新页面时,它会开始正常工作。出于这个原因,我使用PHP 尝试捕获来了解会话是否超时,如果是,那么在catch我运行下面的JavaScript代码。我想自动刷新页面,而不是让用户手动完成。

以下代码刷新页面,但随后会不断刷新页面。我是javascript的新手你可以建议一旦它成真,我应该如何摆脱这种情况。

代码

    try{        

        $facebook = new Facebook(array(
          'appId'  => '123456789',
          'secret' => 'some_secret',
        ));

        $accessToken = $facebook->getAccessToken();
        $facebook->setAccessToken($accessToken);

        $user_profile = $facebook->api('/me','GET');

        $username= $user_profile['email'];
        $fb_id= $user_profile['id'];
    }catch(Exception $e){

        location.reload(true);
        console.log('Session has been timed out');
    }

1 个答案:

答案 0 :(得分:0)

<script type="text/javascript">
    if(window.location.hash==-1)
    {
        //add a # if it doesn't exist
        newurl = document.URL+"#";
        location = "#";

        //Refresh page
        location.reload(true);

    }
</script> 

或尝试此操作(如果用户已禁用本地存储/ Cookie,则无效)

function()
{
  if( window.localStorage )
  {
    if( !localStorage.getItem( 'firstLoad' ) )
    {
      localStorage[ 'firstLoad' ] = true;
      location.reload(true);
    }  
    else
      localStorage.removeItem( 'firstLoad' );
  }
}