我有以下代码将XFBML片段动态加载到Facebook IFRAME应用程序中。
HTML:
<div id="fragment" style="display:none">
<fb:serverfbml id="fragmentfbml">
</fb:serverfbml>
jQuery代码:
<script type="text/javascript">
function loadFragment()
{
jQuery.ajax(
{
url: "xfbml_fragment.php", // contains the
type: "POST",
dataType: "html",
cache: "false",
success: function (data)
{
jQuery("#fragmentfbml").html(data);
FB.XFBML.parse();
jQuery("#fragment").css("display","block");
}
});
}
</script>
每次都可以使用jQuery AJAX调用,但是FB.XFBML.parse()调用只能使用一次。我已经使用console.log()向FB.XFBML.parse()添加了一个回调(如下所示),并验证了它仅在首次调用时执行。
FB.XFBML.parse(
document.getElementbyId("fragment"),
function( { console.log("parse called"); } )
);
这是FB.XFBML.parse()的已知行为(在FB Javascript SDK docs中肯定不是这样)还是我在这里做错了吗?
最佳答案
我尝试了以下功能,并且能够多次调用FB.XFBML.parse():
function createFbmlNode() {
var like = document.createElement("fb:like");
like.setAttribute('href', 'URL_TO_LIKE');
like.setAttribute('send', false);
like.setAttribute('width', 450);
like.setAttribute('show_faces', false);
document.getElementById('response').appendChild(like);
FB.XFBML.parse();
}
在以下范围内创建节点:
<span id="response" style="display: block;"></span>
相似按钮iFrame是通过parse方法创建的。
关于jquery - 每页可以调用FBML.XFBML.parse()的次数有限制吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3763253/