Facebook で非常に奇妙な問題が発生していscrollTo()
ます。関連するコードは次のとおりです。
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'APPID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true // enable OAuth 2.0
});
FB.Canvas.setSize({ width: 810, height: 5000 });
//FB.Canvas.setAutoGrow();
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
function scrollToQuestion(top) {
FB.Canvas.scrollTo(0, top);
}
</script>
これが奇妙な問題です。コード自体は機能しません。ただし、firebug を使用していて、ブレークポイントをFB.Canvas.scrollTo(top, 0);
行に配置している間は、機能が機能しません。どうしたの...?!
編集:最終的にそれを理解しました...いくつかの奇妙な理由で、トップ変数が何らかの文字列として入ってきました。関数の呼び出しを次のように変更する必要がありました。
var top = 0;
top = parseInt($('.top'"]').position().top);
scrollToQuestion(top);
これで問題が解決しました。