Как перезагрузить / обновить кнопку в стиле Facebook при подключении к API Facebook через Javascript - PullRequest
2 голосов
/ 27 марта 2012

Я использую JS API для подключения к Facebook на моем веб-сайте. Это требует нажатия кнопки, и информация профиля пользователя и т. Д. Загружается через JavaScript.

Моя проблема в том, что на моей странице есть кнопка типа FB:

 <div id="fb-like" style="position:absolute; left:340px; top:80px;">
        <fb:like href="http://www.facebook.com/xxxxxx" send="true" width="450" show_faces="false" colorscheme="dark"></fb:like>
    </div>

Но когда вводится информация о пользователях, кнопка «Мне нравится» не показывает, что я вошел в систему. Чтобы увидеть, что я вошел в систему, мне нужно обновить страницу, а затем она говорит, что она мне понравилась и кто из моих друзей нравится и т.д ..

Есть ли способ обновить кнопку «Мне нравится» после завершения входа в JavaScript?

Спасибо:)

1 Ответ

1 голос
/ 27 марта 2012

Вы можете обновить кнопку «Мне нравится», отредактировав DOM с помощью javascript, отреагировав на событие входа в систему.

Вот как я это делаю.

        <div id="fblike" style="position:absolute; left:340px; top:80px;"></div> 
<div id="fb-root"></div> 
<script>
        window.fbAsyncInit = function() {
        FB.init({
        appId  : '135669679827333',
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true, // parse XFBML
        //channelUrl : 'https://anotherfeed.com/emo/channel.html', // channel.html file
        oauth  : true // enable OAuth 2.0
        }); 
        function onlogin(){ 
        var loginb=document.getElementById('fblike'); 
        loginb.innerHTML='';
        loginb.innerHTML='<div id="fb-like"><fb:like
        href="http://www.facebook.com/xxxxxx" send="true" width="450"
       show_faces="false" colorscheme="dark"></fb:like></div>';
        FB.XFBML.parse(loginb); 
        };

       FB.Event.subscribe('auth.login', function(response) {
        onlogin();
       });
        FB.Event.subscribe('auth.logout', function(response) {
        //window.location.reload();
        });
        };   // Load the SDK Asynchronously 
        (function(d, s, id) {   var js, fjs = d.getElementsByTagName(s)[0];   
        if(d.getElementById(id))
        return;   js = d.createElement(s); js.id = id;   js.src =
        "//connect.facebook.net/en_US/all.js#xfbml=1&appId=135669679827333";  
        fjs.parentNode.insertBefore(js, fjs); }(document, 'script',
        'facebook-jssdk')); 
    </script>
...