Uncaught ReferenceError: FB n'est pas défini

Je sais que cette question est fréquemment demandé, mais je n'ai pas trouvé la solution.
J'utilise ce code:

ouvrir la balise html avec

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

dans l'indice immédiatement après la balise d'ouverture je suis entré dans cette

<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>

enfin, le bouton

<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>

la comme des œuvres, mais ne pas ouvrir l'alerte et j'ai eu cette erreur dans la console.

Uncaught ReferenceError: FB is not defined

Toutes les solutions?

  • Dans votre dernier bloc de code, vous appelez la méthode immédiatement, sans attendre le SDK d'être initialisé. Mettre cet appel à l'intérieur de la fbAsyncInit gestionnaire après l'initialisation.