2011-12-08 1 views
2

<body>タグのすぐ下にJavaScript APIコード(下記)が含まれています。ajaxを使用したFacebookのソーシャルプラグインのレンダリング

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=<APP_ID>"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

私はlikeとcomment boxのそれぞれのマークアップも追加しました。

ブラウザから直接ロードしたときにソーシャルプラグインが正常に表示されますが、ajaxを使用してロードされたページでは表示されません。

ソーシャルプラグインがajaxで読み込まれたページにレンダリングされるようにするには、何が必要ですか?

答えて

5

Facebookは、ページが読み込まれるとfbmlタグを検索します。そのため、ソーシャルプラグインが読み込み時にレンダリングされるのはこのためです。ロード後に新しいものを追加すると、FBMLを再度レンダリングするようにFacebookに指示する必要があります。 FB.XFBML.parse()を呼び出すだけの簡単な方法があります。また、Facebookのスキャン/レンダリングにDOM要素参照を含めることもできます。

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

+0

私はFacebookがXFBML.parse()および他のFBML法を廃止しようとしていることを読みました。私は正しいですか? [link] https://developers.facebook.com/docs/reference/fbml/ FacebookでFacebookを非難する場合、タグを表示するにはどうすればよいですか? – iamkhush

関連する問題