FB.logout не работает в IE8 - PullRequest
       32

FB.logout не работает в IE8

1 голос
/ 22 декабря 2010

Я интегрировал вход в Facebook с моим приложением, и я хочу выйти из системы пользователя Facebook, когда он выходит из моего приложения. Поэтому я сделал следующее:

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

Это работает в Firefox и Chrome, но не работает в IE8. В IE8 пользователь вышел из приложения, но не вышел из Facebook. Кто-нибудь еще испытывает это?

Ответы [ 2 ]

0 голосов
/ 26 августа 2011

Я нашел то же самое, а также с помощью браузера Android. Исправление Шахида сработало для меня, и тогда я понял, что другим подходом было бы поместить перенаправление в функцию обратного вызова следующим образом:

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

Если вы похожи на меня, вы, вероятно, подумали, что FB.logout просто уничтожает cookie или что-то в этом роде, но, похоже, выполняет некоторые ajax-вызовы (я полагаю, чтобы отменить аутентификацию на сервере) и имеет разное время выполнения, особенно на мобильных устройства, использующие беспроводные сети.

2000 мс может не обязательно быть достаточным для завершения функции или может быть больше, чем необходимо. Функция обратного вызова выполняется после завершения FB.logout в каждом случае.

0 голосов
/ 01 августа 2011

Пожалуйста, попробуйте это

<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>
...