【发布时间】: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