我有以下代码将 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 文档中肯定没有这样说)还是我在这里做错了?