0

私は維持する必要がある Facebook プログラミングを使用しています <div id="fb-root" ></div>

私の最初のページでは、上記の div を保持する必要があるボタンをクリックして Facebook のログインを実行します。これは問題ありません。

ユーザーがindex.phpのボタンをクリックすると、ajaxを介して新しいページurl.phpがページにロードさ<div>index.phpます。このurl.phpページには、Facebook のコメント ボックスのコードが含まれています。両方で<div id="fb-root" ></div>. 同じ div id を使用すると、問題が発生する可能性がありますか?index.phpurl.php

url.php直接ロードするとfacebook comment box正しく表示されますが、最初にロードindex.phpしてajaxリクエストを介してurl.phpコメントボックスが呼び出されると、コメントボックスは表示されません。

url.php の 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=9549";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-comments" data-colorscheme="light" data-width="470" style="z-index: 1; left: 420px; top: 560px; "  ></div>

index.php 中

<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
    appId: '<?php
echo $appId;
?>',
    cookie: true,
    xfbml: true,
//  channelUrl: '<?php
echo $return_url;
?>channel.php',
    oauth: true});}; .....

アップデート

ajax 呼び出しを実行するコード:

 if (response.status === "connected")
        {
            LodingAnimate(); 
            FB.api('/me?fields=movies,email', function(mydata) {
            console.log(mydata.email);

            //alert("json-5");
            var json = JSON.stringify(mydata.movies.data);
        //    alert(mydata.movies);
            var a = JSON.parse(json);       
            $.post('movies_db.php',{'myd':a}, function(data) 
            {
                $.ajax({
            url:'url.php'
            ,async:     true
            ,cache:     false
            ,dataType:  'html'
            ,success:   function(data){
                $('body').html(data);
                    }
        });        
            });
        console.log(data);

              }); //--
         } //if
4

1 に答える 1