fbml не обрабатывается и не обрабатывается при ответе ajax - PullRequest
0 голосов
/ 09 августа 2011

Я занимаюсь разработкой приложения для Facebook (с использованием iframe).

У меня есть ситуация, когда моя страница полностью загружена, и она правильно отображает содержимое fbml (форма запроса), но затем при некоторых действиях я выполняю ajax-вызов для получения обновленного содержимого fbml с сервера (php).Он приносит код, но fbml не обрабатывается / не обрабатывается , а вложенный div остается пустым.

Ниже приводится fbml, который я получаю с помощью ajax:

<fb:serverfbml width="615">
        <script type="text/fbml">
            <fb:fbml>   
                <fb:request-form action="some value"
                                 .......//other code.....>
                        <fb:multi-friend-selector                               
                                .......//other code.....
                                />
                </fb:request-form>
            </fbml>
        </script>
</fb:serverfbml>

После ajax response включающий div остается пустым, но в firebug я мог видеть следующий код:

<div id="enclosing_div_id">
<fb:serverfbml width="615"> </fb:serverfbml>
    <script type="text/fbml">
        <fb:fbml>   
            <fb:request-form action="some value"
                             .......//other code.....>
                    <fb:multi-friend-selector                               
                            .......//other code.....
                                 />
            </fb:request-form>
        </fbml>
    </script>
</div>

Хотя, он не отображается на моей странице.

Пожалуйста, руководство.

Спасибо

=============================

ОБНОВЛЕНИЕ:

Я проверил все следующее, но, похоже, они не работают в моем случае.

FB.XFBML.parse();

if ( FB.XFBML.Host.parseDomTree )
    setTimeout( FB.XFBML.Host.parseDomTree, 0 );


FB.XFBML.parse(document.getElementById('invite_new_div'), function() {
 alert('I rendered');
});

Обратите внимание, что ядо сих пор не использовал FBJS в моем приложении.

1 Ответ

1 голос
/ 09 августа 2011

Похоже, вы просто помещаете код fbml в свой div и не извлекаете выходной контент, который должен был быть отображен на сервере facebook и представлен вам в виде стандартного html.Браузер не знает, как отобразить fbml, поэтому вы просто видите пустой div.

Обновление: после публикации кода FB js это имеет смысл.Согласно этой статье:

http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/

Вы можете визуализировать только следующие теги fbml:

* fb:activity
* fb:add-profile-tab
* fb:bookmark
* fb:comments
* fb:friendpile
* fb:like
* fb:like-box
* fb:live-stream
* fb:login-button
* fb:recommendations
* fb:serverFbml
* fb:profile-pic
* fb:user-status

Как видите, элемент формы не указан как одиниз них.Это может быть вашей проблемой.

...