首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FB.Canvas.setAutoResize()的IE抛出错误;

FB.Canvas.setAutoResize()的IE抛出错误;
EN

Stack Overflow用户
提问于 2011-09-09 06:16:09
回答 2查看 1.2K关注 0票数 0

这是一个新事物。至少在IE8中,getting a不支持all.js中的方法,并且似乎在FB.Canvas.setAutoResize()上崩溃了;

这阻止了我们的自动调整大小在IE中工作,而我似乎无法在不抛出某种异常的情况下获得工作的解决方案。

代码语言:javascript
复制
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();
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-09 06:29:33

使用window.fbAsyncInit钩子执行FB.Canvas.setAutoResize();

window.fbAsyncInit函数将在加载Facebook库时执行,而不是在加载整个页面时执行。

当页面没有完全加载时,FB.Canvas.setAutoResize();将无法正常工作,因为它不知道您的内容的正确高度。当页面完全加载时,可以使用window.onload执行FB.Canvas.setAutoResize();

试试这个:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2011-09-09 06:34:07

记住以异步方式加载javascript文件这意味着它只会在加载完整个文件之后执行,这可能是您的情况,import语句应该如下所示:

代码语言:javascript
复制
<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>

希望这对您有帮助!:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7355175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档