Вопрос по youtube, jquery, ajax, comments, facebook – Социальный плагин Facebook и выпуск jQuery

0

Я использую jQuery для загрузки некоторого контента в лайтбокс, как div в веб-приложении, над которым я работаю. Используя $ POST, я вызываю динамически заполненную страницу, которая содержит видео на YouTube и плагин комментариев на Facebook.

Первое видео, которое я загружаю, идет с комментариями, но каждое видео после этого приходит без комментариев. Какие-нибудь быстрые идеи относительно того, что могло бы случиться?

Это страница, которую я загружаю.

<? $video_id = $_POST['video_id']; ?>

<object width="800" height="499"> 
    <param name="movie" value="http://www.youtube.com/v/<? echo $video_id; ?>?modestbranding=1&amp;version=3&amp;hl=en_US&rel=0"></param> 
        <param name="allowFullScreen" value="true"></param> 
        <param name="allowscriptaccess" value="always"></param> 
    <embed src="http://www.youtube.com/v/<? echo $video_id; ?>?modestbranding=1&amp;version=3&amp;hl=en_US&rel=0" type="application/x-shockwave-flash" width="800" height="499" allowscriptaccess="always" allowfullscreen="true"></embed> 
</object>


<h5 style="margin:35px 0 8px 0;">Comment on this Video</h2>
<div id="fb-root"></div>
<script>(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/all.js#xfbml=1&appId=158242874284543";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-comments" data-href="http://XXXXXXXXXXXX.com/viewvideo.php?video_id=<? echo $video_id; ?>" data-num-posts="12" data-width="800"></div>

И это вызов, который вводит его (#view_video - это div, который содержит лайтбокс, .video_wrapper - это div, который отображает загруженную информацию. Каждая миниатюра находится в div с классом videothumb, id которого установлен в уникальный идентификатор видео YouTube):

<script>
    //VIEW VIDEO
    $('.videothumb').click(function() {
        $('#view_video').fadeIn('fast');
        this_video_id = $(this).attr('id');
        $.post( 'viewvideo.php', { video_id: this_video_id },
            function( data ) {
                //on complete
                $('.video_wrapper').html(data);
            }
        );
    });
</script>

Спасибо!!!

Ваш Ответ

1   ответ
0

также загружается Facebook JS SDK и анализирует теги XFBML в вашем документе.

В следующий раз, когда вы AJAX-загрузите страницу в ваш документ, JS SDK уже встроен в ваш документ, поэтому больше ничего не произойдет & # x2013; и это не включает новый анализ тегов XFBML.

Вы должны использоватьFB.XFBML.parse сообщить SDK, что он должен снова найти в документе (динамически добавленные) теги XFBML. (Предпочтительно дать ему DOM-узел в качестве первого параметра, чтобы он не выполнял поиск во всем документе снова, а только в той части, где произошли динамические изменения.)

Понимаю. Поэтому мне нужно добавить этот вызов после $ (".video_wrapper"). Html (data); ? nathan

Похожие вопросы