6

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 窗口中输入我的凭据时,该页面会加载该页面的空白文档 URL: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

查看该页面的源代码:

<!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 标签看起来像:

所以我知道这不是问题。

4

5 回答 5

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);
});
于 2009-04-13T21:40:04.070 回答
1

IE8 和 Facebook 连接简单。

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

当然,您必须在 IE8 中启用 Javascript(关于此的许多其他信息),这是我确定的。

还是不行。

然后是达伦特牛顿上面的帖子....

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

行得通!谢谢达伦。

于 2010-05-25T11:13:43.683 回答
0

我在让 facebook 连接使用新的 Javascript SDK 身份验证方法时遇到了一些麻烦——它在 Chrome 和 FF 中运行良好,但在 IE8.0 中运行良好

经过一番修补后,我发现这 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">是必要的。

我还必须编辑我的应用程序设置:将连接 URL 更改为: http: //XXX.example.com.org :8006/XXXX / 并将基本域更改为: 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>
于 2010-08-03T16:02:25.820 回答
0

有点晚了,但这救了我的皮!!希望这对其他人有帮助!

FB Connect在IE8、IE9登录时显示空白弹窗解决方法:

使用自定义频道网址

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

FB.init({ appId : 'YOUR APP ID', status : true, cookie : true, xfbml : true, channelUrl: "http://yourdomainname/fbtest/channel.html" //将此文件添加到您的网站中。
} );

2.channel.html文件的内容应该是这一行:

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

请参阅http://forum.developers.facebook.net...了解完整的论坛主题。

于 2011-06-21T19:31:49.850 回答
0

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

在 Fiddler 上,它不会将安全调用传递给 CONNECT(主机)。

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

这适用于所有其他浏览器/操作系统组合。

我试过fb xmlns,没有结果。

于 2010-11-08T16:23:26.710 回答