Как поставить код XFBML с помощью AJAX? - PullRequest
2 голосов
/ 04 ноября 2010

Я хотел бы использовать javascript (JQuery), чтобы запросить у сервера код XFBML через ajax. Затем код 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>

"; 

и вот код 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);
}

Я не могу заставить его работать .. он не прикреплен.
Если я просто помещаю XFBML статически на HTML-страницу, это работает. но если я присоединяюсь к DOM, это не так.

Это из-за тега? или это из-за данных, которые содержат \ r \ n при возврате с сервера?

1 Ответ

6 голосов
/ 04 ноября 2010

Вам необходимо использовать FB.XFBML.parse для любого нового контента.FBML анализируется только при загрузке страницы по умолчанию.В соответствии со вторым примером на странице, на которую я ссылаюсь, точный код будет

FB.XFBML.parse(document.getElementById('attachnow'));

добавлен в качестве последней строки вашей функции attachData.

...