IE8 Win7 Facebook Connect问题

时间:2009-04-03 16:17:27

标签: asp.net asp.net-mvc internet-explorer-8 facebook

2009年4月8日更新 - 我进入了一个新的一周,没有任何进展,也没有来自Facebook论坛的答案。在那里没有一个回应,这是非常令人失望的。我也无法弄清楚如何在这个问题上给予赏金,但我真的非常希望能够解决这个问题。


我看了很多帖子,看看之前是否发布过,但事实并非如此。这是简短版本:

我正在阅读示例FB Connect教程(v1),但无法在Win7上的IE8中使用它。它在Win7上的FF3上按预期工作。

长版:

我很惊讶事情不起作用,因为我几乎复制并粘贴了内容。我通过alert()javascript调用跳过了这一点,所以我把它放进去看看解析器是否达到了这个目的。我把以下代码放在:

[my raw html]
Or use, <fb:login-button length="long" onlogin="alert('yo!!!');"></fb:login-button>
[/my raw html]

IE8上没有弹出警报。它适用于FF。

当我改回调用update_user_box()时,我的HTML看起来像:

Or use, <fb:login-button length="long" onlogin="update_user_box();"></fb:login-button>

<script type="text/javascript">
    function update_user_box() {
        var user_box = document.getElementById("user");
        user_box.innerHTML =
            "<span>"
            + "<fb:profile-pic uid='loggedinuser' facebook-logo='true'></fb:profile_pic>"
            + "Welcome, <fb:name uid='loggedinuser' useyou='false'></fb:name>."
            + "You are signed in."
            + "</span>"

        FB.XFBML.Host.parseDomTree();
    }

    FB.init("23e24c73feed7ca0f6afd876575842de", "../../Connect/xd_receiver.htm", { "ifUserConnected": update_user_box });
</script>

同样,这在FF3中运行得很好。我的照片显示了一切。它实际上让我更加不高兴它在FF3中工作而不是完全没有工作的情况。

以下是IE8中见证的行为:

  1. 当我点击FBConnect按钮时。弹出javascript窗口并加载正确的登录页面

  2. 焦点更改回主窗口(带有我的应用程序的那个)

  3. 主IE8窗口(我点击连接按钮的窗口)现在显示了一个facebook登录页面。

  4. 当我将凭据输入FB javascript窗口时,该页面会加载一个空白文档  该网页的网址:http://localhost:55994/Connect/xd_receiver.htm?fb_login&fname=_opener&session=%7B%22session_key%22%3A%223.A4DpHk4nrKHooB7K_Q6EiA__.86400.1238796000-623225%22%2C%22uid%22%3A%22623225%22%2C%22expires%22%3A1238796000%2C%22secret%22%3A%22HtjtJS_xg8dX7TR7lLggew__%22%2C%22sig%22%3A%22ae12c0f98d4567612b70861314d42fbb%22%7D

  5. 查看该页面的来源:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <body>
        <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script>
    </body>
    </html>
    

    5,如果我关闭该窗口并在应用程序窗口中输入我的凭据,则会使用FBConnect按钮重新加载页面。

    正如我所说,我在FF3中获得了预期的行为,但不是IE8。我甚至尝试过IE8的兼容模式,但这也不起作用。任何人都有关于发生了什么的线索?

    我的HTML标记如下:

    所以我知道这不是问题。

5 个答案:

答案 0 :(得分:7)

我遇到了同样的问题 - 确保在主页上设置了HTML命名空间:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

http://forum.developers.facebook.com/viewtopic.php?id=23412

另外,我做了一些自举以防止出现空错误:

FB.Bootstrap.requireFeatures(["Connect"], function() 
{
    FB.init("--api-key--","domain/xd_receiver.htm");
    FB.Connect.ifUserConnected(your_function_here);
});

答案 1 :(得分:1)

IE8和Facebook Connect Simple。

在我的Facebook Connect网站上,我正在开发的Facebook小部件根本没有加载  

当然,你必须在IE8中启用Javascript(其他很多信息)我确定了。

仍然没有。

然后是Darrent Newton的帖子......

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

诀窍!谢谢达伦。

答案 2 :(得分:0)

我在使用新的Javascript SDK身份验证方法使用facebook连接时遇到了一些麻烦 - 它在Chrome和FF中工作得很好但不是IE8.0

经过一些修修补补后,我发现了这一点 需要<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

我还必须编辑我的应用程序设置: 将Connect URL更改为: http://XXX.example.com.org:8006/XXXX/ 并将Base Domain更改为: example.com

注意:当我在本地计算机上进行测试时,将基本域设置为IP地址不起作用。 渲染方法:iframe

Javascript供参考:

<script src="http://connect.facebook.net/en_US/all.js"></script>

<script>

  FB.init({appId: '{{facebook_app_id}}', status: true, cookie: true, xfbml: true});
  FB.Event.subscribe('auth.sessionChange', function(response) {
    if (response.session) {
      // A user has logged in, and a new cookie has been saved
        window.location.reload();
    } else {
        // The user has logged out, and the cookie has been cleared
    }
  });

</script>

答案 3 :(得分:0)

我有一个非常类似的问题。 在IE7-8 Win7上,我得到“页面无法显示”。 弹出窗口是空的。

在Fiddler上,它不会通过对CONNECT(主机)的安全调用。

我正在使用带有API.ui / stream.Publish的Facebook Javascript SDK API。 我已经设置了2个应用程序。一个用于法语域,一个用于英语域。英语域名正确,法语域名没有。两个连接网址/基本域都设置正确。

这适用于所有其他浏览器/ os组合。

我尝试了fb xmlns,没有结果。

答案 4 :(得分:0)

有点晚了但这节省了我的隐藏!希望这有助于其他人!

  

FB Connect显示空白弹出窗口   登录IE8,IE9解决方案:

     

使用自定义渠道网址

     

1.在FB.init会话中添加channelUrl参数。

     

FB.init({        appId:'你的APP ID',        状态:是的,        cookie:是的,        xfbml:true,        channelUrl:“http://yourdomainname/fbtest/channel.html”   //在您的网站上添加此文件   });

     

2. channel.html文件的内容应为以下单行:       

     

3.测试你的FB登录...享受......

有关完整的论坛帖子,请参阅http://forum.developers.facebook.net...