2

I try to add simple Like button to my Facebook Canvas app (iframe). The button (and all other XFBML elements) works in Safari, Firefox, Opera, but in Google Chrome.

How can I find the problem?

EDIT1:

This is ERB-layout in my Rails app

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

JS error message in Chrome inspector:

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

Probably similar to http://forum.developers.facebook.net/viewtopic.php?id=84684

Andy
  • 123
  • 1
  • 5

2 Answers2

2

I'm doing exaclty what you are doing. And it works. Try this snippet.

<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>
andrewk
  • 499
  • 2
  • 9
1

Browsers in corporate environments (or with a VPN) behind a Zscaler router will fail to load script links where Zscaler would temporarily redirect to its content warning page "Internet Security by Zscaler". Similarly, some clicks in StackOverflow would stop responding. As a work-around I find and paste the failing links to the address bar and confirm my intent to the Zscaler's prompt.

eel ghEEz
  • 111
  • 1