这是一件新事物。至少IE 8在all.js中得到一个不支持的方法,似乎在FB.Canvas.setAutoResize();
这是停止我们的自动调整大小在IE中工作,我似乎无法得到一个有效的解决方法而不会抛出某种异常。
window.fbAsyncInit = function() {
FB.init({
appId : js_fb_app_id,
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true
});
FB.Canvas.setAutoResize();
};
答案 0 :(得分:1)
使用 window.fbAsyncInit 挂钩执行 FB.Canvas.setAutoResize();
window.fbAsyncInit 功能将在加载Facebook库时执行,但不会在加载整个页面时执行。
当页面未完全加载时, FB.Canvas.setAutoResize(); 将无法正常工作,因为无法知道您内容的正确高度。如果页面满载,您可以使用window.onload执行 FB.Canvas.setAutoResize(); 。
试试这个:
window.fbAsyncInit = function() {
FB.init({
appId : js_fb_app_id,
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true
});
};
window.onload=function(){
FB.Canvas.setAutoResize();
}
答案 1 :(得分:0)
请记住将您的javascript文件加载为异步,这意味着它只会在完成加载整个文件后执行,这可能是您的情况,import语句应如下所示:
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'your app id', status: true, cookie: true,
xfbml: true});
};
(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);
}());
</script>
希望这对你有所帮助! :)