Определить, когда Facebook Like Button загружена
Как вы, наверное, знаете, кнопка "Нравится" в Facebook загружается очень медленно.
И я пытаюсь выяснить, как определить, когда кнопка закончила загрузку и была добавлена на сайт.
Причина в том, что я показываю анимацию загрузки, а затем скрываю ее и показываю кнопку, но я хотел бы показать кнопку после ее загрузки.
Можно ли это сделать?
Спасибо всем заранее!
3 ответа
Можно подписаться на событие xfbml.render, чтобы получать уведомления о завершении рендеринга, который срабатывает только один раз за разбор страницы (и работает не только для xfbml, но и для новой хитрости html5). Разбор страницы происходит автоматически при загрузке FB JS SDK, если xfbml : true
,
window.fbAsyncInit = function() {
FB.init({
...
xfbml : true
});
FB.Event.subscribe('xfbml.render', function(response) {
alert('OMG... All Facebook sociaal plugins on page rendereed.... finally!');
});
};
// And load the SDK Asynchronously here
Если вы добавляете виджет Facebook динамически и, таким образом, вызываете FB.XFBML.parse вручную, то вы можете просто указать функцию обратного вызова, которая вызывается после завершения рендеринга.
Я уверен, что кнопка "Мне нравится" на Facebook обернута в iFrame. Если это так, вы можете найти что-то для ссылки на этот iFrame и использовать ->
$('iframe[class/id/name=whatever]').load(function(){
//This element is loaded
});
РЕДАКТИРОВАТЬ
Исходя из ваших конкретных потребностей, мы можем подключиться к любому атрибуту, как указано в моем комментарии, я просто выбираю frameborder="0"
зацепиться
$('iframe[frameborder=0]').load(function(){
alert("loaded.");
});