未捕获的 ReferenceError:未定义 FB

Posted

技术标签:

【中文标题】未捕获的 ReferenceError:未定义 FB【英文标题】:Uncaught ReferenceError: FB is not defined 【发布时间】:2013-12-22 10:05:39 【问题描述】:

我知道这个问题经常被问到,但我还没有找到解决办法。 我使用此代码:

打开html标签
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#">

在我输入的开始标签之后的索引中

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() 
    // init the FB JS SDK
    FB.init(
      appId      : 'MY_APP_ID',                        // App ID from the app dashboard
      status     : true,                                 // Check Facebook Login status
      xfbml      : true                                  // Look for social plugins on the page
    );

    // Additional initialization code such as adding Event Listeners goes here
  ;

  // Load the SDK asynchronously
  (function()
     // If we've already installed the SDK, we're done
     if (document.getElementById('facebook-jssdk')) return;

     // Get the first script element, which we'll use to find the parent node
     var firstScriptElement = document.getElementsByTagName('script')[0];

     // Create a new script element and set its id
     var facebookJS = document.createElement('script'); 
     facebookJS.id = 'facebook-jssdk';

     // Set the new script's source to the source of the Facebook JS SDK
     facebookJS.src = '//connect.facebook.net/it_IT/all.js';

     // Insert the Facebook JS SDK into the DOM
     firstScriptElement.parentNode.insertBefore(facebookJS, firstScriptElement);
   ());
</script>

最后是按钮

<fb:like href="http://mydomain.it/" layout="button_count" action="like" show_faces="false" share="false"></fb:like>
<script>
FB.Event.subscribe('edge.create',
 function(href, widget) 
    alert('Ti piace ' + href);
);
</script>

类似的作品,但没有打开警报,我在控制台中收到了这个错误。

Uncaught ReferenceError: FB is not defined

有什么解决办法吗?

【问题讨论】:

在您的最后一个代码块中,您会立即调用该方法,而无需等待 SDK 初始化。初始化后将该调用放在 fbAsyncInit 处理程序中。 【参考方案1】:

您收到此错误的另一个原因是您在 fbAsyncInit 定义括号之后 缺少 ;

window.fbAsyncInit = function() 
;

【讨论】:

【参考方案2】:

查看此主题:FB is not defined in Facebook Login。

您正在尝试在按钮之后使用FB,但尚未定义:

<fb:like href="http://mydomain.it/" layout="button_count" action="like" show_faces="false" share="false"></fb:like>
<script>
FB.Event.subscribe(...
^--- FB isn't defined yet!

FB.Event.subscribe 代码移到您的 window.fbAsyncInit 函数中,其中您有注释“附加初始化代码”

【讨论】:

以上是关于未捕获的 ReferenceError:未定义 FB的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的 ReferenceError:未定义 showCategory

未捕获的 ReferenceError:“$ 未定义”[重复]

PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”

未捕获的 ReferenceError:$ 未定义 [重复]

未捕获的 ReferenceError:未定义窗口

未捕获的 ReferenceError:未定义 url