如何通过ajax放置XFBML代码?

mur*_*lai 2 ajax dom facebook xfbml

我想用javascript(JQuery)通过ajax向服务器询问XFBML代码.然后XFBML代码将附加到DOM.

这是php代码:

echo "
<fb:serverFbml>
    <script type=text/fbml'>
    <fb:fbml>
        <fb:request-form
            action='http://myserver.com/invited.php'
            method='post'
            type='myserver'
            invite='true' 
            content='yo you...'>
            <fb:request-form-submit uid=12312312label='Send to %n ' import_external_friends=false />
        </fb:request-form>
        </fb:fbml>
  </script>
</fb:serverFbml>

"; 
Run Code Online (Sandbox Code Playgroud)

这是javascript:

function clickME() {

    $.ajax(
            {
                url:'http://myserver.com/fbml_ajax.php',
                success:attachData,

                type:'GET',
                dataType:'html',
                global:false
            }
        );

}

function attachData(data) {
    var myData = data;
    $('#attachnow').html(data);
}
Run Code Online (Sandbox Code Playgroud)

我无法使它工作..它没有附加.
如果我只是将XFBML静态地放在HTML页面上,它就可以了.但如果我附加到DOM它不会.

是因为标签吗?或者是因为从服务器返回时包含\ r \n的数据?

Dom*_*nic 6

您需要在任何新内容上使用FB.XFBML.parse.FBML默认只在页面加载时解析.根据我链接的页面中的第二个示例,确切的代码将是

FB.XFBML.parse(document.getElementById('attachnow'));
Run Code Online (Sandbox Code Playgroud)

添加为您attachData函数的最后一行.