web-dev-qa-db-fra.com

Uncaught ReferenceError: le FB n'est pas défini

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

ouvrez le tag html avec

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

dans l'index 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>

le même fonctionne, mais n'ouvre pas l'alerte et j'ai eu cette erreur dans la console.

Uncaught ReferenceError: FB is not defined

Des solutions?

20
Francesco Mineo

Voir cette discussion: Le FB n'est pas défini dans Facebook Login

Vous essayez d'utiliser FB juste après votre bouton, et celui-ci n'est pas encore défini: 

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

Déplacez ce code FB.Event.subscribe dans votre fonction window.fbAsyncInit, où vous avez ce commentaire "Code d'initialisation supplémentaire"

20
jszobody

Une autre raison pour laquelle vous obtenez cette erreur est parce que vous êtes manquant; après le support de définition fbAsyncInit.

window.fbAsyncInit = function() {
};
0
Deyan Vitanov