1

我在我們網站上嵌入的Facebook評論插件,由於某種原因,評論插件是停留在一個永遠載入沙爹像如下:Facebook評論插件被永久加載 - 它是Facebook還是我的代碼?

Facebook comment plugin perpetual load

我不知道這是否是一個Facebook的問題還是我的代碼。下面是我開<body>標記之後有:

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
     FB.init({ appId: '1234567890', cookie: true, oauth: true }); 
    }; 
    (function (d) { 
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) { return; } 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
    } (document)); 
</script> 

(1234567890是我的實際應用標識是)

在網頁,我想顯示的Facebook評論插件,我有這樣的:

<div class="fb-comments" data-href="http://mydomain.com" 
    data-num-posts="2" data-width="580"></div> 

據我可以告訴這應該所有的工作。但是,我沒有看到任何關於此問題的FB bug,也沒有在其他網站上看到問題。所以我想這是我的代碼?

我甚至一直在使用代碼生成的FB開發者網站給出確切的代碼嘗試:

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

不幸的是這也不起作用。

想得到一些幫助,指出我在正確的方向!

更新:我試過把我的AppID放在這個小提琴(http://jsfiddle.net/Rw79Q/),它的工作原理。所以在我的代碼中有些東西導致了這個問題。不知道它可能是什麼,我不能在這裏分享我的整個代碼。

回答

1
window.fbAsyncInit = function() { 
    ({ appId: '1234567890', cookie: true, oauth: true }); 
}; 

是不是該函數的主體實際上應該是一個參數? ({ appId: '1234567890', cookie: true, oauth: true });在一個函數體中創建一個對象文字,然後不做任何事情。這相當於寫作:

window.fbAsyncInit = function() {}; 

這是沒用的。

其餘的代碼看起來像是有效的,但我手邊沒有有效的應用程序ID /域名來測試。放下你的應用程序ID和域在這個小提琴,看看它的工作原理:http://jsfiddle.net/Rw79Q/


從聊天討論,它看起來像的頁面必須是一個活的服務器上,否則你得到的「無限裝」行爲。我能夠使用本地file: URI重新創建行爲。希望這個問題一旦推向生產就會消失。

+0

我正在按照這個例子作爲文檔在這裏:https://developers.facebook.com/docs/reference/javascript/,它以相同的方式使用'window.fbAsyncInit'。 – TMC

+1

您的示例缺少'FB.init'。 –

+0

我更新了我原來的問題,提到即使我刪除'window.fbAsyncInit'部分(這意味着我不需要'FB.init'),它仍然不能解決它。 – TMC