2011-08-09 3 views
0

(iframeを使用して)Facebookブックアプリケーションを開発しています。fbmlがAjaxレスポンスで解析/レンダリングされない

私のページが完全に読み込まれ、fbmlコンテンツ(リクエストフォーム)が正しく表示される状況がありますが、いくつかのアクションで、サーバ(php)から更新されたfbmlコンテンツを取得するためのajax呼び出しを行います。それはコードをもたらしますが、fbmlは解析されない/レンダリングされません、そして囲むdivは空白のままです。続き

iはAJAX使用してフェッチしていますFBMLです:AJAX応答

<fb:serverfbml width="615"> 
     <script type="text/fbml"> 
      <fb:fbml> 
       <fb:request-form action="some value" 
           .......//other code.....> 
         <fb:multi-friend-selector        
           .......//other code..... 
           /> 
       </fb:request-form> 
      </fbml> 
     </script> 
</fb:serverfbml> 

を、囲んでいるdivが空白のままですが、放火犯で、私はそれに次のコードを見ることができる:

<div id="enclosing_div_id"> 
<fb:serverfbml width="615"> </fb:serverfbml> 
    <script type="text/fbml"> 
     <fb:fbml> 
      <fb:request-form action="some value" 
          .......//other code.....> 
        <fb:multi-friend-selector        
          .......//other code..... 
           /> 
      </fb:request-form> 
     </fbml> 
    </script> 
</div> 

しかし、私のページにはレンダリングされません。

ご案内しています。

おかげ

==============================

UPDATE:

I次のすべてをチェックしましたが、私の場合は動作していないようです。

FB.XFBML.parse(); 

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


FB.XFBML.parse(document.getElementById('invite_new_div'), function() { 
alert('I rendered'); 
}); 

私は今まで私のアプリでFBJSを使用していないことに注意してください。

+0

FB解析コードを実行しようとしましたが、アラートがポップアップしませんでしたか?はいの場合は、正しいdiv IDを使用していますか?最初のhtmlの例ではid = "enclosing_div_id"を使用していますが、FB構文解析ではidが 'invite_new_div'の要素が検索されています。 – evasilchenko

+0

はい、アラートはポップアップしますが、divは空白のままです。そして、はい、div idは正しいです。以前のコードでは、私は例を使用しました。 – Prashant

答えて

1

あなたのdivにfbmlコードを入れ、facebookサーバーでレンダリングされ、標準HTMLとして表示されるはずの出力コンテンツをプルしないようです。ブラウザはfbmlのレンダリング方法を知らないので、空のdivが表示されます。

更新:FB jsコードを掲載した後は意味があります。このarticeによると:

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

あなただけの次FBMLタグをレンダリングすることができます。

* fb:activity 
* fb:add-profile-tab 
* fb:bookmark 
* fb:comments 
* fb:friendpile 
* fb:like 
* fb:like-box 
* fb:live-stream 
* fb:login-button 
* fb:recommendations 
* fb:serverFbml 
* fb:profile-pic 
* fb:user-status 

フォーム要素は、それらの1つとして表示されていない見ることができるように。これはあなたの問題かもしれません。

+0

私は理解していますが、ページが読み込まれると、ここで述べた同じfbmlコード(Ajaxレスポンスから取得したもの)を完全に解析してレンダリングします。私はFacebookのページの読み込みにfbmlを解析するためだと思うが、質問は、どのように解析し、ajaxレスポンスでfbmlを動的にレンダリングするか、ページが完全に読み込まれた後の時間ですか? – Prashant

+0

あなたのアプリはfbmlを解析してhtmlを吐き出すか、fbmlがfacebookサーバーによって解析され、iframeでページを読み込んでいるときにhtmlとして吐き出されるからです。より多くの情報を私達に提供してください。私はこれをさらに解決するのを手伝っていきます。 – evasilchenko

+0

@ DeviantSeev:facebookのドキュメント(上記のリンク)は、fb:serverfbmlをレンダリングできると述べています。しかし、私はそれの内部にfb:request-formがレンダリングできるかどうかはわかりません。それは私が立ち往生した場所です。とにかく今までのすべての助けをありがとう.. – Prashant

関連する問題