2011-12-25 51 views
1

我有一個圖片庫,我用fancybox來顯示圖片,並在圖片之間導航。在圖片下方,我整合了Facebook評論插件,可以爲每幅圖片添加特定評論。 我的問題是,人們爲特定圖片添加的評論沒有出現。但是,如果我添加評論,它會顯示出來,但這些只是我的評論,並且只有當我登錄到Facebook時纔會顯示。有人知道我能做什麼錯嗎?Facebook對圖片的評論不起作用

facncybox圖庫的網址是:http://www.bass.hr/photogallery.php?album=17 對於facebook註釋集成,我使用生成的代碼https://developers.facebook.com/docs/reference/plugins/comments/

這裏是我的代碼:

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

<div id="fancybox_container" style="display:none;"> 
    <?php 
    foreach ($Imgs as $key => $i) { 
    ?> 
      <div id="inline_<?php echo $key;?>" style="width:500px;"> 
       <img id="fancyboxContentImage" src="<?php echo $target.$i['filename']; ?>" /> 
       <div style="margin-top:20px;"> 
        <fb:comments href="http://www.bass.hr/<?php echo $target.$i['filename'];?>" num_posts="2" width="450"></fb:comments> 
       </div> 
      </div> 
      <a class="grouped_elements" href="#inline_<?php echo $key;?>" rel="group" ></a> 
    <?php 
    } 
    ?> 
</div> 

<script type="text/javascript"> 

$(window).load(function(){ 
    $("a.grouped_elements").fancybox({ 
     openEffect : 'fade', 
     closeEffect : 'fade', 
     nextEffect : 'fade', 
     prevEffect : 'fade', 
     mouseWheel : 'true', 
     width  : 520, 
     height  : 400, 
     autoSize  : 'true', 
     fitToView : 'true', 
     type   : 'inline', 
     scrolling : 'yes', 
     padding  : 10, 
     afterShow :function() { 
      var referenceHeight = $('div.fancybox-inner div img').height()+15; 
      $('.fancybox-prev, .fancybox-next').css('height', referenceHeight+'px'); 
     } 
    }); 
    $("#fancybox_container a.grouped_elements:first").click(); 
}); 
</script> 

UPDATE1:

我也試着像Facebook開發的JavaScript SDK參照異步加載了Facebook的JavaScript SDK,但一樣的結果。

UPDATE2:

我也用螢火蟲檢查檢查我的圖片的URL。如果我複製網址,並給它作爲一個參數的圖形API,那麼評論是否有在返回的數組(請參閱下面的評論對我通過圖形API試圖鏈接)

UPDATE3:

我創建了一個僅包含圖像和它下面的Facebook註釋插件的sepparate測試頁面。之後,我將url傳遞給調試器,所以它刷新緩存,但沒有結果。 這裏只圖像+插件的網址: bass.hr/photodisplay.php?photo=pic_1293187827.jpg

任何想法,不一定解決方案將大大也apreciated。

在此先感謝。

回答

0

默認情況下(一旦DOM準備就緒),XFBML標籤僅在Facebook JS-SDK初始化時解析。隱藏的內容可能會被跳過。你需要調用FB.XFBML.parse一旦要呈現XFBML標籤頁

您只能將它作爲參數傳遞給FB.XFBML.parse方法

更新做每一個標籤頁或指定的節點: 外貌就像它不直接關係到XFBML渲染,而是傳遞給onload函數中的某個文件名中的某個字符,該函數阻止FB.XFBML在頁面上加載(這就是爲什麼任何XFMBL標記根本沒有渲染),連線只發生在Chrome上/ Chromium,但不是Safari(同時測試)。

<body class="background_main" style="background-image: url(../Images/blackjack3.jpg);" onload="MM_preloadImages('Images/home2.png','Images/o 
nama2.png','Images/photogallery2.png','Images/forum2.png','Images/news2.png','Images/kontakt2.png')"> 

這是錯誤的鉻,我看到(出於某種原因只能有時歸因於Facebook的正確的地方,大部分時間看到真正的錯誤。JS)

Uncaught SyntaxError: Unexpected token ILLEGAL (photogallery.php:66)

更新2:

如果評論其他用戶發佈不顯示(或只能評論張貼顯示),也可能是一些原因:

  • 審閱已啓用徵求意見
  • 發佈爲測試用戶的評論
  • 對於某些標記爲垃圾郵件發送者的用戶(由Faceboo控制) k)的評價,不顯示
  • 的Facebook錯誤(這是可能的,但可能不是的情況下)

更新3:

這可能是錯誤,它可以在http://developers.facebook.com/bugs/117814361658299被跟蹤

+0

感謝您的快速響應,但我不認爲這是XFBML標記解析問題,因爲我也嘗試使用https://developers.facebook.com/docs/上生成的HTML5版本的代碼reference/plugins/comments /併產生相同的結果。將Facebook JS-SDK初始化放在文檔上準備好,並從div中刪除顯示none也沒有幫助。我也試圖在頁面上的所有元素上調用FB.XFBML.parse,但是沒有運氣。關鍵是,如果你在谷歌瀏覽器中打開它,Facebook評論插件甚至不會顯示。 (在Firefox和IE中) – user1115501 2011-12-25 20:45:11

+0

查看我的回答更新 – 2011-12-25 21:16:41

+0

更正了Chrome的問題,現在它也出現在Chrome上,但Facebook評論仍然不起作用,它只顯示我的評論,並且僅當我登錄時才顯示。還有什麼這可以嗎? – user1115501 2011-12-26 14:26:22

0

想通了..看起來,Facebook不會讓新創建的用戶立即發表評論。如果有人再次遇到此問題,請檢查這一點。