Почему значки общего ресурса FB скрыты с элементами отложенной загрузки / загрузки jscroll / ajax?

У меня была отложенная загрузка на моей странице, и я пытался разместить кнопку "Поделиться" в одном из элементов, но по какой-то причине она не отображается. Я столкнулся с этой проблемой день назад и провел несколько часов, пытаясь понять, почему кнопки общего доступа FB не загружаются. Здесь я также не смог найти никаких проблем, поэтому я решил опубликовать дело вместе с решением, чтобы кто-то из нуждающихся мог сэкономить время.

1 ответ

Я понял, что кнопки общего доступа к социальным сетям делают запрос через скрипт на загрузку HTML-элемента, такого как изображение и т. Д., Для загрузки кнопок. Поэтому, когда вы загружаете страницу через ajax, вы должны заново инициировать объект FB, прежде чем использовать его при вызове кнопки "Поделиться".

function loadFacebook()
{
    if (typeof (FB) != 'undefined') {
        FB.init({ status: true, cookie: true, xfbml: true });
    } else {
        $.getScript("http://connect.facebook.net/en_US/all.js#xfbml=1", function () {
            FB.init({ status: true, cookie: true, xfbml: true });
        });
    }
}

Вызов вышеупомянутой функции незадолго до загрузки новой страницы сделал для меня всю работу. Вы можете просмотреть эту замечательную статью о Lazy Load Social Media Buttons для более подробной информации. Я нашел решение в той же статье.

Другие вопросы по тегам