2011-12-13 38 views
0

当用户更改我们的Viddler播放列表中的视频时,是否可以将页面上的Facebook评论框更改为新的视频?独特的Facebook评论Viddler播放列表视频

播放列表在同一页面上更改而不刷新,所以如果我插入一个FB评论框,它将保持不变,无论调用哪个视频。

我知道这将有可能使用JavaScript ...

这里是一个在这里创建做播放列表变更的脚本:

$(".playlist-link").click(function(e){ 
e.preventDefault(); 
var playlist = $(this).attr("href"); 

var url = 'http://www.viddler.com/tools/vidget.js' + 
       '?widget_type=js_list' + 
       '&widget_width=940' + 
       '&source=playlist' + 
       '&user=Fanaticgroup' + 
       '&playlist='+ playlist + 
       '&style=grid'+ 
       '&show_player=true'+ 
       '&player_type=simple'+ 
       '&max=12'+ 
       '&videos_per_row=6'+ 
       '&v=2.0'+ 
       '&id=7476737550'; 

$.getScript(url, function(data, textStatus){ 

}); 
}); 

现在,这完全没有工作并让它开在选择播放列表后,我可以调用其他功能,如自动启动第一个视频等。

播放列表更改后,还有每个新视频都有调用新的FB评论框的方法吗?

回答

0

根据Facebook的文档,你可以插入使用HTML,像这样的评论社交插件:

<div class="fb-comments" data-href="http://example.com" data-num-posts="2" data-width="500"></div> 

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

它应该是足够简单,在这一点上做同样的事情到这一点:

<div class="fb-comments" data-href="http://www.yourdomain.com/some/unique/path/identifying/your/playlist" data-num-posts="5" data-width="500"></div> 

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

var commentContainerTemplate = $('.fb-comments').clone(); 
function loadNewPlaylistComments(playlist_id) 
{ 
    var currentComments = $('.fb-comments'), 
    newComments = commentContainerTemplate.clone() 
      .data('href', "http://www.yourdomain.com/some/unique/path/identifying/your/playlist/" + playlist_id) 
      .before(currentComments); 

    currentComments.remove(); 

    FB.XFBML.parse(newComments.get()); 
} 
</script> 

然后,每次您拨打loadNewPlaylistComments()时,旧评论将被删除,新的评论容器将被添加到该页面,并且FB XFBML解析器将被执行。这应该加载新播放列表的评论。新的评论可能需要几秒钟才能加载,所以我建议你一旦搞清楚了一切,就为用户建立一种加载指示器。

+0

是的,这样做。那么一旦我开始安装评论,我将不得不让你在这个循环中。谢谢你,虽然! –