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中见证的行为:
当我点击FBConnect按钮时。弹出javascript窗口并加载正确的登录页面
焦点更改回主窗口(带有我的应用程序的那个)
主IE8窗口(我点击连接按钮的窗口)现在显示了一个facebook登录页面。
当我将凭据输入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
查看该页面的来源:
<!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标记如下:
所以我知道这不是问题。
答案 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...。