Почему значки общего ресурса 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 для более подробной информации. Я нашел решение в той же статье.