首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IE8连接会产生问题,有什么解决办法吗?

使用IE8连接会产生问题,有什么解决办法吗?
EN

Stack Overflow用户
提问于 2011-05-23 22:47:40
回答 4查看 6.1K关注 0票数 10

我一直在努力解决在IE8上使用Facebook时遇到的问题,我似乎已经到了一个死胡同:

我们有一个Facebook游戏(画布iFrame),它在使用IE8时出现了问题。我们完全遵循了FB.init开发人员页面上的说明,但一无所获。

我们尝试使用channelUrl修复和各种类型的修复,这些都是概述的这里

我们的响应头正在发送P3P头:

代码语言:javascript
复制
P3P CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"

我们还测试了这种集成的异步和同步版本,两者在结果上都没有任何差异。

尽管我们做了很多努力,但在IE8上,FB.getSession()总是返回一个未定义的值。有大量的信息,我已经审查了,虽然失望地没有成功,在错误报告给Facebook,他们解决了作为一个错误.尽管在用户认为这个问题解决了很久之后,线程上的用户一直在报道这个问题。

在最后一次尝试中,我将转到这里,首先是一个测试FB应用程序的正常运行,除了添加了一些控制台日志的FB.init JS示例之外,这个应用程序中没有任何内容,以表明FB.getSession已经有了一个uid。

如果您正在回答此问题,请您在IE8上进行检查,并查看控制台,该控制台在FB会话成功加载后将写入。

代码语言:javascript
复制
FB: [object Object] FB.getSession().uid: [your fb id]

http://apps.facebook.com/fb-js-issue

那里的守则如下:

代码语言:javascript
复制
<div id="fb-root"></div>
<script type="text/javascript">

    window.fbAsyncInit = function() {

        FB.init({
            appId: 'appId',
            status: true,
            xfbml: true,
            cookie: true,
            channelUrl: "http://ourserver.com/channelUrl.htm"
        });
        FB.Canvas.setAutoResize();
        console.log("Running FB test");

        setTimeout(function() {
            console.log("FB: " + FB + " FB.getSession().uid: " + FB.getSession().uid);
        }, 5000);


    };
    (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>

因此,总的来说,该示例应用程序运行良好,但在极少数情况下,即使是这样也有问题。

我们的实际应用程序(使用相同的FB.init方法)在IE上始终遇到FB.getSession未定义的问题,因此无法加载

http://apps.facebook.com/party-on

:我们已经确定这个问题对Windows上的IE8或Windows7上的IE8影响更严重(虽然不是100%)。

如何克服这一切?

所以..。考虑到这个问题似乎很常见,而且没有一个解决方案是明确的,除了一些尚未公开讨论的真正解决这个问题的严重魔法之外,真正有指导意义的是强调与FB.connect集成的其他可能方法,而不是他们展示的方法。

我提到这一点的原因是,当您查看CityVille和FarmVille如何进行FB集成时,与FB本身作为开发人员文档的作者一点关系都没有。嗯,有意思

任何新的想法和不同的角度都会在这个阶段受到热烈欢迎!

EN

回答 4

Stack Overflow用户

发布于 2011-06-12 05:19:11

只是一个随机的问题,你真的在IE8模式下使用IE8吗?要小心,因为有时候IE8会切换到兼容模式(IE7),然后您将处理一组全新的问题。页面上的代码强制IE在最新版本中呈现。它必须是第一个元标签。

代码语言:javascript
复制
<meta http-equiv="X-UA-Compatible" content="IE=edge" >

http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx

票数 1
EN

Stack Overflow用户

发布于 2012-08-21 15:42:26

我解决了一个类似的问题,就是在body标记之后添加异步加载。

代码语言:javascript
复制
<body>
<div id="fb-root"></div>
</body>
<script>
window.fbAsyncInit = function() {
    FB.init({
      appId : 'yourAppId', 
      status : true, 
      cookie : true,
      xfbml : true,
      frictionlessRequests : true
    });

    FB.Canvas.setAutoGrow();
    FB.Event.subscribe('auth.statusChange', yourCode); 
};
(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));
</script>
票数 1
EN

Stack Overflow用户

发布于 2012-11-17 08:13:42

尝试删除整个应用程序中的所有console.log()调用。

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

https://stackoverflow.com/questions/6103882

复制
相关文章

相似问题

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