在我的FB应用程序中,我正在调用FB.Canvas.setSize();使页面符合我的内容的长度。这在Chrome,Firefox,Safari和IE中正常运行。然而,似乎Opera比其他浏览器更快地调用它,并且在FB对象准备好接受这样的请求之前尝试调整大小。它不会抛出JS异常,因此FB对象不为null,但无法调整页面大小。如果我在调用resize之前放入断点并等待几秒钟然后让它通过它就会调整页面的大小。此外,其他FB功能正在运行(请求,馈送帖等)。 Opera和Facebook JS SDK是否存在任何已知问题或者我应该如何考虑Opera如何执行Javascript?
答案 0 :(得分:1)
您是否正在使用集成FB JS的异步方式,例如
<div id="fb-root"></div>
<script type="text/javascript" charset="utf-8">
window.fbAsyncInit = function() {
resizeFacebookCanvas();
}
function resizeFacebookCanvas(){
if ( FB && FB.Canvas && FB.Canvas.setSize ){
FB.Canvas.setSize({
width: 520,
height: 900
});
}
}
(function() {
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
答案 1 :(得分:1)
只是为了让你知道,这似乎是一个“已知”的Facebook / Opera漏洞。您也可以在此处关注进度:developers.facebook.com/bugs