检查用户计算机是否可以访问Facebook

检查用户计算机是否可以访问Facebook,facebook,xfbml,Facebook,Xfbml,Facebook在我们国家是被禁止的。然而,仍然有相当数量的用户可以使用Facebook。当然,许多其他人不能。我的网站使用类似Facebook的按钮和框。如果用户机器无法访问Facebook,页面上将出现一些“丑陋”的部分,其中应该有Facebook插件 有人知道如何解决这个问题吗?我的意思是如何检查用户机器是否可以访问Facebook?任何技巧都值得欣赏。您可以在Facebook的服务器上加载一个隐藏图像,然后添加一个OneError处理程序,如果无法访问Facebook,该处理程序会告诉您

Facebook在我们国家是被禁止的。然而,仍然有相当数量的用户可以使用Facebook。当然,许多其他人不能。我的网站使用类似Facebook的按钮和框。如果用户机器无法访问Facebook,页面上将出现一些“丑陋”的部分,其中应该有Facebook插件


有人知道如何解决这个问题吗?我的意思是如何检查用户机器是否可以访问Facebook?任何技巧都值得欣赏。

您可以在Facebook的服务器上加载一个隐藏图像,然后添加一个OneError处理程序,如果无法访问Facebook,该处理程序会告诉您:

<img src="https://graph.facebook.com/4/picture" style="display:none" onerror="doSomething();" />


PS:中国封锁Facebook绝对是荒谬的。

我通过使用Facebook API实现了这一点。只需启动一个查询,并调用FB.XFBML.parse();当查询完成时

<script type="text/javascript"> 
 window.fbAsyncInit = function () {
 FB.init({
 appId: 'app id',
 status: false,
 cookie: true,
 xfbml: false,
 oauth: false
 });
 FB.api({
 method: 'fql.query',
 query: 'SELECT uid,name FROM user WHERE uid=1234'
 },
 function (response) {
 if (response[0].uid == '1234') { // Now that the user can connect to facebook
 FB.XFBML.parse();
 }
 });
 };
 (function() {
 var e = document.createElement('script');
 e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
 e.async = true;
 document.getElementById('fb-root').appendChild(e);
 }()); 
</script> 

window.fbAsyninit=函数(){
FB.init({
appId:“应用程序id”,
状态:false,
曲奇:是的,
xfbml:false,
oauth:错误
});
FB.api({
方法:“fql.query”,
查询:“选择uid,用户名来自uid=1234的用户”
},
功能(响应){
如果(响应[0].uid=='1234'){//现在用户可以连接到facebook了
FB.XFBML.parse();
}
});
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
}()); 

那么当用户无法访问facebook时会发生什么?您从facebok.com的HTTP get请求中得到的响应是什么?我的第一次尝试是将此响应转换为布尔值,并根据此布尔值输出不同的代码/显示。我有相同的想法。我正在尝试:$.get(“,函数(){alert(“load facebook success”);});但它不起作用。Chrome控制台显示如下错误:XMLHttpRequest无法加载。访问控制不允许源代码允许源代码您知道为什么吗?如果您已经在使用jquery,这也很有效。如果你需要一种方法来测试它,只需将facebook.com重新路由到你主机文件中的其他内容。是的,我现在可以访问FB(我现在在英国)。然而,该错误出现在Chrome控制台中。在Fiddler中,请求确实发出了,并返回了200状态。你能看到我的jquery代码有什么问题吗?要么Facebook不允许跨域请求,要么你需要使用JSONP。检查以下答案: