вставить элемент facebook, если пользователь может подключиться к facebook

#jquery #javascript

#jquery #javascript

Вопрос:

Я хочу использовать javascript, чтобы проверить, может ли мой пользовательский браузер подключаться к facebook. Если все в порядке, на веб-странице будет отображаться элемент facebook фан-страницы. Исходный код facebook для вставки элемента facebook fanpage является:

 <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
            <fb:like href="facebook.com/xxxxx" show_faces="true" width="380px" height="1px" font=""></fb:like>
  

И я использую этот код для проверки, может ли пользователь подключиться к facebook для отображения элемента fanpage:

 $(function()
                {

                    $.ajax({
                        url: 'http://graph.facebook.com',
                        dataType: 'jsonp',
                        success: function() {
                            $.getScript('http://connect.facebook.net/en_US/all.js#xfbml=1', function()
                                    {
                                        $('#divfb_embed').append('<fb:like href="facebook.com/phamimports" show_faces="true" width="380px" height="1px" font=""></fb:like>');
                                    }); 
                        },
                        error : function(data)
                        {
                            alert("error");
                        }
                    });

                });
  

Однако, когда код успешно запускается, элемент fanpage не отображается нормально. Я думаю, что в facebook javascript есть несколько специальных кодов для отображения в элементе fanpage.
Спасибо за любую помощь

Ответ №1:

Это мой взгляд на вещи… Я могу ошибаться. facebook sdk инициализируется при запуске события document ready и анализирует страницу в поисках <fb:blah> тегов, чтобы отобразить их в виде html.

Поскольку вы вставляете файлы facebook javascript после запуска события document ready, инициализация facebook никогда не срабатывает, и ваша кнопка «Мне нравится» не появится.

Либо это, либо функция успеха, которая добавляет <fb:like> тег, происходит после выполнения загруженного скрипта.

В любом случае я бы посоветовал вам просто обернуть <fb:like> в <div> скрытый элемент, а затем, как только вы узнаете, что пользователь может подключиться к facebook, вы сможете показать скрытый <div> .

Комментарии:

1. о, большое спасибо за хитрое решение. Однако на данный момент это хорошее решение. 1 за разумное решение