Теги FBML не отображаются, если их нет на странице с самого начала (т. Е. Вы загружаете теги fbml через ajax в некоторый div). Чтобы их отобразить, вам нужно проделать дополнительную работу.
Прежде всего, все js-файлы должны быть перемещены в главное окно (fb js include, fb init). userinfo.html должен содержать только fbml и html. Автоматический синтаксический анализ FBML должен быть отключен в FB.init({xfbml : false})
(я не помню, он мог бы работать с автоматическим анализом, но я думаю, что мне пришлось его отключить).
Вам нужно отметить место, где ваш будущий fbml будет загружен динамически, с помощью тега fb:serverFbml
:
<div id="dialog">
<fb:serverFbml id="dialog-fbml"></fb:serverFbml>
</div>
Ваш скрипт загрузки fbml теперь будет выглядеть так:
$("#dialog-fbml").load('userinfo.html #layer'); //load fbml
FB.XFBML.parse($("#dialog")[0]); //parse it
$("#dialog").dialog('open'); //show