web-dev-qa-db-fra.com

Pourquoi XFBML fonctionne-t-il partout sauf dans Chrome?

J'essaie d'ajouter un simple bouton J'aime à mon application Facebook Canvas (iframe). Le bouton (et tous les autres éléments XFBML) fonctionne dans Safari, Firefox, Opera, mais dans Google Chrome.

Comment puis-je trouver le problème?

EDIT1:

Ceci est la mise en page ERB dans mon application Rails

<html xmlns:fb='http://www.facebook.com/2008/fbml' xmlns='http://www.w3.org/1999/xhtml'>
...
<body>
...
<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
      FB.init({
        appId: '<%= @app_id %>', status: true, cookie: true, xfbml: true
      });
      FB.XFBML.parse();
    };
    (function() {
      var e = document.createElement('script'); e.async = true;
      e.src = document.location.protocol +
        '//connect.facebook.net/en_US/all.js#appId=<%=@app_id%>&amp;amp;xfbml=1';
      document.getElementById('fb-root').appendChild(e);
    }());
    FB.XFBML.parse();
</script>
<fb:like></fb:like>
...

Message d'erreur JS dans l'inspecteur Chrome:

Uncaught ReferenceError: FB is not defined
  (anonymous function)
Uncaught TypeError: Cannot call method 'appendChild' of null
  window
  (anonymous function)

Probablement semblable à http://forum.developers.facebook.net/viewtopic.php?id=84684

1
Andrei

Je fais exactement ce que tu fais. Et il fonctionne. Essayez cet extrait.

<div id="fb-root"></div>

<script src="http://connect.facebook.net/en_US/all.js"></script>

<script>

  FB.init({appId: '<%= @app_id %>', status: true, cookie: true, xfbml: true});

  FB.Event.subscribe('auth.sessionChange', function(response) {

    if (response.session) {

      // A user has logged in, and a new cookie has been saved

    } else {

      // The user has logged out, and the cookie has been cleared

    }

  });

</script>
1
andrewk

Les navigateurs dans les environnements d'entreprise (ou avec un réseau privé virtuel) derrière un routeur Zscaler ne pourront pas charger les liens de script où Zscaler serait temporairement redirigé vers sa page d'avertissement de contenu "Internet Security by Zscaler". De même, certains clics dans StackOverflow cesseraient de répondre. En guise de solution de contournement, je trouve et colle les liens défaillants dans la barre d'adresse et confirme mon intention à l'aide de l'invite de Zscaler.

1
eel ghEEz