2013-06-26 75 views
1

問題停止狀態,一旦它執行

我在我的PHP嘗試捕捉使用下述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'); 
    } 
+0

的PHP代碼是相關的,因爲問題您發佈的代碼段不會告訴任何事情。 – Ford

+0

只是好奇你怎麼把js放到PHP中try/catch – claustrofob

+0

我已經添加了上面的PHP代碼。 – colourtheweb

回答

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> 

或嘗試這樣(如果用戶禁用了本地存儲/ cookies不工作)

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

如果你要尋找'#',至少要使用提供的特定位置 - 「window.location.hash」 - 如果不是空的,URL中有一個有 – Ian

+0

@Ian:對不起,我的不好,糾正了錯誤。感謝您指出:) –

+0

@harsha謝謝你的時間伴侶。我也添加了我的php代碼。往上看。 – colourtheweb