2015-04-05 6 views
1

Я совершенно новый для программирования плагинов Facebook. Я имею в виду документ быстрого запуска.Плагины Facebook, не работающие над страницами контента/шаблона

На моем веб-сайте у меня есть страница макета и несколько страниц контента. Только страница макета содержит полную структуру html-head-body, а остальные страницы содержимого содержат частичные элементы html (которые можно рассматривать как шаблоны).

я поставил FB.init() скрипт только на странице макета, чуть ниже body тег:

<script> 
window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'MY-APP-ID', 
     xfbml: true, 
     version: 'v2.3' 
    }); 
}; 

(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/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
</script> 

и пытается протестировать интеграцию, используя как плагин в одном из моей страницы содержания:

   <div class="col-sm-10 fb-like" 
       data-share="true" 
       data-width="450" 
       data-show-faces="true"> 

Но я обнаружил, что он не работает, когда я помещаю его на страницы контента/шаблона. Обратите внимание, что в этом случае я даже не нашел ошибки JavaScript в консоли браузера. Тем не менее, то же самое работает, когда я прямо поместил то же самое на странице «Макет».

Пожалуйста, дайте мне знать, что мне не хватает здесь.

P.S .: То же самое относится к входу fb (работает по макету, но не по шаблону).

ответ

1

Звучит как init работает до того, как шаблон был добавлен в DOM. Вы отметили свой вопрос для aurelia, поэтому я предполагаю, что у вас есть модель представления, поддерживающая шаблон. Рассмотрите возможность использования обратных вызовов жизненного цикла, которые вам доступны -

attached - Этот обратный вызов вызывается после того, как шаблон был визуализирован, и виртуальная машина была прикреплена к нему. Ввод вашего FB.init() здесь должен быть достаточным. Вы можете сделать это в родительском или дочернем объекте в зависимости от вашей установки.

 Смежные вопросы

  • Нет связанных вопросов^_^