通过ajax嵌入Facebook视频

时间:2015-04-01 17:41:50

标签: javascript jquery ajax facebook

我有一个数据库,我也存储来自Facebook的X视频的ID,Youtube和vimeo,然后我通过Ajax加载任何视频,vimeo和Youtube加载完美但Facebook没有加载,它只加载html但是我通过ajax获得的代码还包含一个由Facebook提供的脚本...
要从Facebook嵌入视频,代码是这样的:

<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/sdk.js#xfbml=1&version=v2.0";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk')
        );
</script>
<div class="hidden-xs hidden-sm visible-md visible-lg">
    <div id="fbid">
        <div id="fb-root"></div>
        <div class="fb-post" data-href="https://www.facebook.com/video.php?v=<?php echo $v->v; ?>" data-width="800">
            <div class="fb-xfbml-parse-ignore">
            </div>
        </div>
    </div>
</div>

使用此代码我可以嵌入facebook视频,如果我直接转到我的ajax文件,http://foo.com/ajax.php?i=1它将仅为facebook输出该代码,这就是我得到的,它正确显示视频,但如果我用ajax调用它我只看到html但脚本没有被执行换句话说我看不到视频...
我的ajax就是这个

$('.v_list li').click(function(){
    var $ids = $(this).attr('id');
    $.ajax({
        url: "v.php",
        data: {
            vid: $ids
        },
        type: "GET",
        // dataType: "html", // test #7 .. working for all
        context: document.body, // change #8
        success: function (data) {
            $("#slider").html(data);
        },
        error: function (xhr, status) {
            alert("Ocurrio un problema!");
        },
        complete: function (xhr, data) {
            // hide the loading img
        }
    }).done (function (data) {
        // alert('sss'); // This is working...
        $("#slider").find("script").each(function(i) {
            eval($(this).text());
        }); // this p*** of s*** is not working... 
    });
})

所以我得到的唯一问题是视频是用于Facebook的时候......我该如何解决这个问题?...谢谢

1 个答案:

答案 0 :(得分:14)

使用AJAX加载HTML代码后,您可能需要使用FB.XFBML.parse:

FB.XFBML.parse();

来源:https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse