2010-07-22 1 views
7

Чтобы предоставить вам простой пример использования - на моем веб-сайте я показываю комментарии, размещенные пользователями facebook. Для каждого комментария я показываю фотографию пользователей facebook с помощью тега fb: profile-pic и кнопки типа fb.Теги Facebook не отображают при сгенерированном динамическом использовании JQuery

Эта страница отображается правильно, и все отображается хорошо. Теперь, когда пользователи хотят читать более старые комментарии, они нажимают на ссылку «Дополнительно»

Используя JQuery, я вытягиваю старые комментарии и в сборке javascript содержимое, добавляющее fb: profile-pic и теги fb: like

Но эти теги не отображаются. Нужно ли нам перезагружать его или что-то в этом роде. Спасибо за вашу помощь

+0

вы должны перезагрузить его ... Я предлагаю через AJAX, ... – Reigel

+0

, как я могу это сделать - как сейчас я строю вся моя строка сказать комментарий = «

I love icecream
» Тогда я бы сделал $ ("# myswipes"). Html (комментарий); Так как бы я перезарядил. – Gublooo

ответ

28

Сначала убедитесь, что FBML вставляется в DOM с инспектором. Если это так, все, что вам нужно сделать, это сообщить Facebook, чтобы преобразовать теги FBML в теги HTML, чтобы ваш браузер мог его отображать. С помощью Graph API вы вызываете FB.XHTML.parse http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse с помощью Javascript SDK. Вот пример из моего кода:

$('#list').append('<fb:name uid="4"></fb:name>'); 
FB.XFBML.parse(document.getElementById('list')); 
+1

thankyou thankyou thankyou - я люблю тебя - ты так долго спасал .......... это именно то, что мне нужно - еще раз спасибо – Gublooo

+0

спасибо, действительно помог мне тоже – srcastro

+0

И я, это прекрасное небольшое исправление! Я использовал как кнопку в загруженной вкладке jQuery ajax и не мог заставить ее отображать все, что я пробовал, пока не нашел это. У меня большой рост! – Rich

-1

, как я могу это сделать - как сейчас я построить всю свою строку сказать comment="<div>I love icecream<br/><fb:profile-pic uid='xxx'></fb:profile-pic></div>" Тогда я сделал бы $("#myswipes").html(comment); Так как я бы перезагрузить.

вы можете использовать $.ajax(), скажем

$('a.moreComment').click(function(){ 
    $.ajax({ 
     url: 'some/url.php', 
     success : function(comment){ 
      $("#myswipes").html(comment); 
     } 
    }); 
}) 

some/url.php должен быть на сервере, который может корректно отобразить и вернуть эту строку, <div>I love icecream<br/><fb:profile-picuid='xxx'></fb:profile-pic></div>

+0

Какая разница делает рендеринг той же строки на стороне сервера и на стороне клиента. Я просто попробовал ваш подход, он не работает – Gublooo

+0

, если вы можете отобразить 'some/url.php' в браузере без проблем, тогда это должно сработать ... – Reigel

+0

, если я верну любую другую строку, которая отображается нормально, но когда я возвращаюсь строка тега fb, такая как Gublooo

Смежные вопросы