2009-09-22 15 views
6

Bir sayfa yüklendikten sonra, bir Facebook kullanıcı profili resmini temsil eden etiketleri içeren bir HTML yığınını aşağı çekmek için bir AJAX isteği yapıyorum. Sonuç, DOM'ta bir noktaya ekledim ancak logolar yüklenmiyor, bunun yerine tek gördüğüm varsayılan siluet.Loading Facebook fb: facebook üzerinden AJAX üzerinden profile-pic Connect site

<div class="status Accepted"> 
    <fb:profile-pic class="image" facebook-logo="true" linked="true" size="square" uid="1796055648"></fb:profile-pic> 
    <p> 
    <strong>Corona Kingsly</strong>My Status Update<br/> 
    <span style="font-size: 0.8em">52 minutes ago</span> 
    </p>   
</div> 

Herhangi bir fikir: Burada

Ben

$.ajax({ 
    url: "/facebookprofiles" 
    success: function(result) { 
    $('#profiles').append(result); 
    } 
}); 

jQuery

ile böyle fark dosyaları listesidir ekleme ediyorum HTML HTML öbek yükleme ediyorum nasıl basitçe var? Dom yüklendikten sonra fb etiketlerinin işlenmediğini farz ediyorum. Bunu yapmanın bir yolu var mı? Firebug konsolumda herhangi bir istisna veya hata görmüyorum.

Teşekkür

cevap

8

İlk denemesi bu çok yardımcı olur, ama burada Ajax + FBML ilgili bir makale ise

emin değil: Özellikle http://wiki.developers.facebook.com/index.php/FBJS#Creating_FBML_Elements

, belki de (setInnerFBML kullanabilirsiniz) metot


Takip etmek

Bu yüzden init fonksiyonunun fbml'yi ayrıştırdığını düşünüyorum. Yani asıl soru, inb'den sonra fbml eklerseniz, facebook'un javascript kütüphanesini fbml'yi (veya yeni fbml'yi ayrıştırmak) yeniden ayrıştırmak için nasıl edinirsiniz.

Bu Konuyu yardımcı olabilir gibi görünüyor: http://forum.developers.facebook.com/viewtopic.php?id=22245

Burada forumda daha bağlam olmasına rağmen, ilgili kod gibi görünen var:

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

Facebook Connect kullandığımı belirtmeliydim. SetInnerFBML() ile ilgili her şeyi taradım ama FBJS'nin bir parçası ve Facebook Connect'i FB dışında kullanırken nasıl kullanabileceğinizi göremiyorum. – mbrevoort

+0

AWESOME! Bu işe yarıyor. Teşekkürler! – mbrevoort

+0

Mükemmel cevap! Sadece ihtiyacım olan şey! Sizin için çok teşekkür ederim! –

6

FB.XFBML.Host.parseDomTree yaptılar benim için çalışmıyor. belki de yeni api'de değişti. işi yaptıklarını oldu:

FB.XFBML.parse(document.getElementById('foo')) 

veya

FB.XFBML.parse() 

Eğer çözümlenen tüm sayfayı isterseniz

.

+0

Ben de bu kod satırlarını nereye koydun bu ben – Pbearne

+0

@ user239427 ajax yüklü div'in içine yüklenen sayfadaki bir betik çağrısının içinde mi yoksa orjinal script sayfasında mı? –

0

Ben yüzden

çağırmak için gerekli (facebook yardımcıları dahil) MVC3 Microsoft-Web Yardımcıları

jilet sözdizimi

@Facebook.GetInitializationScripts() 

ouputs

<script type="text/javascript"> 
     window.fbAsyncInit = function() { 
      FB.init({ appId: '115631105198333', status: true, cookie: true, xfbml: true }); 
     }; 
     (function() { 
      var e = document.createElement('script'); e.async = true; 
      e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
      document.getElementById('fb-root').appendChild(e); 
     }()); 

     function loginRedirect(url) { window.location = url; } 
    </script> 

kullanıyorum

window.fbAsyncInit(); 

Facebook içeriğini yeniden ayrıştırmak için.

İlgili konular