【问题标题】:Embed Facebook video via ajax通过 ajax 嵌入 Facebook 视频
【发布时间】:2015-04-01 17:41:49
【问题描述】:

我有一个数据库,其中存储了来自 Facebook、Youtube 和 vimeo 的 X 视频的 ID,然后我通过 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 的...我该如何解决这个问题?...谢谢

【问题讨论】:

  • @luschn 有正确的答案。为什么不认为这是正确的!?
  • @denns,可能是因为我忘记了这个问题,所以我为那个项目使用了不同的方法,但是是的,luschn 是正确的,所以我只是标记为正确答案。

标签: javascript jquery ajax facebook


【解决方案1】:

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

FB.XFBML.parse();

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

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 2012-08-02
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2016-08-06
    • 2014-05-26
    • 1970-01-01
    相关资源
    最近更新 更多