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() 呼び出しは 1 回しか機能しません。console.log() を使用して FB.XFBML.parse() へのコールバックを追加し (以下を参照)、最初に呼び出されたときにのみ実行されることを確認しました。
FB.XFBML.parse(
document.getElementbyId("fragment"),
function( { console.log("parse called"); } )
);
これは FB.XFBML.parse() の既知の動作ですか (確かにFB Javascript SDK docsでそうは言っていません)、それともここで間違ったことをしているだけですか?