2012-06-08 3 views
1

Je suis très débutant ....Comme bouton ne se déclenche pas edge.create ou edge.remove

Je ne peux pas edge.create ou edge.remove à feu quand un bouton est cliqué comme. Je vois que d'autres ont aussi signalé ce problème, en remontant jusqu'en 2011, sans solution possible.

Mon code est le suivant ....

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Untitled Document</title> 
</head> 

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

FB.Event.subscribe('edge.create', 
    function(response) { 
     alert('You liked the URL: ' + response); 
    } 
); 

FB.Event.subscribe('edge.remove', 
    function(response) { 
     alert('You UNliked the URL: ' + response); 
    } 
); 

</script> 
<fb:like href="https://www.facebook.com/XXX" send="true" width="450" show_faces="true"></fb:like> 

</body> 
</html> 

Répondre

3

Vous n'êtes plus qu'à impatient ... :-)

Dans votre code, vous n'attendez pas pour la Facebook SDK à charger, ce qui se fait de manière asynchrone la façon dont vous le mettez dans votre code. Ainsi, lorsque FB.Event.subscribe est appelé, le SDK n'est pas encore initialisé, et cela échoue. (Est-il échouer en silence, ou vous ne l'avez juste oublier de regarder dans votre console d'erreur navigateurs ...?)

Mettre le code suivant le chargement du SDK dans un gestionnaire de window.fbAsyncInit, comme montré ici: https://developers.facebook.com/docs/reference/javascript/

+0

C'est super, je l'ai maintenant fonctionne, merci! J'ai vu le code dans le lien et l'ai essayé avant. Cependant, cette fois-ci, je mets les sections edge.create et edge.remove où il est dit "// Code d'initialisation supplémentaire ici" et cela fonctionne cette fois-ci grâce à votre invite à le mettre "dans un gestionnaire window.fbAsyncinit" –

Questions connexes