Я тоже сталкивался с этой проблемой, и после нескольких часов чтения постов в Интернете я наконец нашел решение, которое работает.Если вы включили этот div в свою разметку:
<div id="fb-root"></div>
Просто добавьте этот скрипт в конец вашего файла (перед закрытием тега body):
window.fbAsyncInit = function () {
FB.init({
appId:'APP ID',
status:true,
cookie:true,
xfbml:true
});
FB.Canvas.setAutoGrow();
};
(function (d, debug) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
ref.parentNode.insertBefore(js, ref);
}(document, /*debug*/ false));
Моя проблема заключалась в том, чтоНесмотря на то, что он работал над Chrome, Safari и даже IE, он все еще не работал в Firefox и Opera.Проблема заключалась в том, что приведенный выше код был написан внутри функции $ (document) .ready () , поэтому Firefox и Opera никогда не запускали функцию fbAsyncInit .После перемещения кода за пределы, независимо от других функций, все работает отлично.