Существует ли ограничение на количество вызовов FBML.XFBML.parse () на страницу? - PullRequest
3 голосов
/ 21 сентября 2010

У меня есть следующий код для динамической загрузки фрагмента 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>

Вызов AQAX jQuery работает каждый раз, но вызов FB.XFBML.parse () работает только один раз. Я добавил обратный вызов в FB.XFBML.parse () с console.log () (см. Ниже) и убедился, что он выполняется только при первом вызове.

FB.XFBML.parse(
   document.getElementbyId("fragment"),
   function( { console.log("parse called"); } )
);

Это известное поведение FB.XFBML.parse () (конечно, это не так в документации FB Javascript SDK ) или я просто ошибаюсь здесь?

Ответы [ 4 ]

2 голосов
/ 22 июля 2011

Я попробовал следующую функцию и смог вызвать FB.XFBML.parse () несколько раз:

function createFbmlNode() {
   var like = document.createElement("fb:like");
   like.setAttribute('href', 'URL_TO_LIKE');
   like.setAttribute('send', false);
   like.setAttribute('width', 450);
   like.setAttribute('show_faces', false);

   document.getElementById('response').appendChild(like);

   FB.XFBML.parse(); 
}

Узел создан в следующем диапазоне:

<span id="response" style="display: block;"></span>

Кнопка «Мне нравится» в iFrame создается методом разбора.

0 голосов
/ 07 июня 2012

Обратите внимание

FBML устарел.Начиная с 1 июня 2012 года приложения FBML больше не будут работать, поскольку все конечные точки FBML будут удалены.

fb: serverFbml является частью FBML

0 голосов
/ 18 июня 2011

В качестве обходного пути мы можем попытаться удалить и снова вставить connect js перед вызовом функции синтаксического анализа.Функция разбора работает один раз каждый раз, когда мы вставляем файл JS.

0 голосов
/ 31 января 2011

Я могу убедиться, что FB.XFBML.parse () работал. то есть вы могли бы назвать это столько раз, сколько хотели однако Facebook недавно сломал это. Теперь вы можете только позвоните один раз.

...