我试图让IE SDK在IE7中运行。我尝试了几个示例代码,它们在Chrome,FF甚至IE8中都运行良好 - 但是IE7并没有触发所有这些示例的getLoginStatus事件。 频道网址已设置。 Domainsettings是正确的,Sandbox已关闭。
即使在fbrell上,似乎getLoginStatus也无效。
http://www.fbrell.com/auth/login-and-logout
该示例在IE7 / XP(VMWare Player)或浏览器堆栈上对我不起作用。 在fbrell上,状态(页面顶部)保持“状态:等待”。
有人可以证实这个问题(2013年10月30日)吗?
答案 0 :(得分:0)
我可以确认这个问题。
当我添加代码以查看对console.log的内容时,我在IE7中得到了类似的内容:
Xdm.swf: connect%3A%20http%253A%252F%252Fmysub.domain.com%252Ff2e554600043906
Xdm.swf: init(channel%20f2e554600043906%2C%20callback%20FB.__globalCallbacks.f3d029e404a5be4)
Xdm.swf: FB.__globalCallbacks.f1628eb66d1241
IE7不会从FB.getLoginStatus回调函数中写入任何内容。其他浏览器也可以。
我的问题是:Facebook Connect Javascript SDK是否支持IE7?
这是我之前的javascript代码,jQuery(1.8.3):
//Added this code to enable use of console.log for IE7
var console = {
panel: $(parent.document.body).append('<div>'),
log: function(m){
this.panel.prepend('<div>'+m+'</div>');
}
};
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : 'XXXXXXXXXX', // App ID from the app dashboard
status : true, // Check Facebook Login status
xfbml : true, // Look for social plugins on the page
channelUrl : "//mysub.domain.com/some/sub/folders/channel.html"
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
console.log("connected");
} else if (response.status === 'not_authorized') {
console.log("not authorized");
} else {
console.log("not logged in to Facebook");
}
}, true);
};
// Load the SDK asynchronously
(function(){
if (document.getElementById('facebook-jssdk')) {return;}
var firstScriptElement = document.getElementsByTagName('script')[0];
var facebookJS = document.createElement('script');
facebookJS.id = 'facebook-jssdk';
facebookJS.src = '//connect.facebook.net/en_US/all.js';
firstScriptElement.parentNode.insertBefore(facebookJS, firstScriptElement);
}());