未捕获的ReferenceError:未定义FB

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

打开html标签

 

在我打开标签之后立即在索引中输入了这个

 
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); }());

最后,按钮

   FB.Event.subscribe('edge.create', function(href, widget) { alert('Ti piace ' + href); });  

类似的工作,但没有打开警报,我在控制台中收到此错误。

 Uncaught ReferenceError: FB is not defined 

有解决方案?

请参阅此主题: Facebook登录中未定义FB 。

您正试图在按钮后立即使用FB ,但尚未定义:

   

将该FB.Event.subscribe代码移动到window.fbAsyncInit函数中,其中包含该注释“Additional initialization code”

你得到这个错误的另一个原因是你错过了; 在fbAsyncInit定义括号之后。

 window.fbAsyncInit = function() { };