У меня не было проблем с тех пор, как это было опубликовано. Но поскольку Чак Моррис, похоже, испытывает ту же проблему, я поделюсь своим опытом.
Прежде всего, у меня было ошибочное предположение, что FB.Canvas.setAutoGrow
может быть вызван в любой момент в коде. Это имело смысл, поскольку затем начинается интервал, который должен обнаруживать любые изменения DOM. Ну, это не совсем так.
В любом случае, хитрость заключается в загрузке Facebook JS после загрузки DOM. По моему опыту это помогает обойти все глюки. Если вы используете jQuery, подойдет что-то подобное.
$(function(){
window.fbAsyncInit = function()
{
FB.init({/*[..]*/});
FB.Canvas.setAutoGrow(91);
FB.Canvas.scrollTo(0,0);
};
// Load the SDK Asynchronously
(function(d){
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.js";
ref.parentNode.insertBefore(js, ref);
}(document));
});