2010-12-21 119 views
1

我已經將Facebook登錄與我的應用程序集成在一起,並且我想在從我的應用程序註銷時從Facebook註銷用戶。所以我做了以下:FB.logout不能在IE8中工作

<a href="<c:url value='/security_logout'/>" onclick="FB.logout();">Logout</a> 

這適用於Firefox和Chrome,但不適用於IE8。在IE8中,用戶從應用程序註銷,但未從Facebook註銷。 任何其他人遇到此問題?

+0

您是否嘗試將IE8切換至兼容模式? – systemovich 2010-12-21 23:59:24

回答

0

請試試這個

<script src="http://connect.facebook.net/en_US/all.js"></script> 
<div id="fb-root"></div> 
<script language="javascript" type="text/javascript"> 


     FB.init({ 
      appId: '205734987138498', 
      status: true, // check login status 
      cookie: true, // enable cookies to allow the server to access the session 
      xfbml: true, // parse XFBML  
      oauth: true // enable OAuth 2.0 
     }); 


    function handleSessionResponse(response) { 
     // FB.XFBML.parse(); 
    } 

    FB.getLoginStatus(handleSessionResponse); 

//////you can optionally put the following in a seprate js file///////// 

var Facebook = {} 

Facebook.signout = function (url) { 
    FB.logout(); 
    setTimeout('top.location.href = "' + url + '"', 2000); 
} 


</script> 

<div onclick="Facebook.signout('http://www.uamplify.com');">Call your logout function now, click here</div> 
0

我發現同樣的事情,也與Android瀏覽器。沙希德的修復工作了我,然後我意識到另一個辦法是把回調函數這樣內重定向:

function mysignout(url) 
{ 
    FB.logout(function() 
    { 
     top.location.href = 'url' 
    }); 
} 

如果你像我一樣,你可能猜到FB.logout只是摧毀一個cookie或但它似乎做了一些Ajax調用(我想撤銷服務器上的身份驗證),並具有不同的執行時間,特別是在使用無線網絡的移動設備上。

2000毫秒可能不一定是足夠的時間完成功能,或者可能超過必要。一旦FB.logout完成後,回調函數就會執行。