2011-08-31 47 views
1

Facebook在我们的国家被禁止。但是仍然有相当多的用户可以解决使用Facebook的问题。当然,其他许多人不能。我的网站使用Facebook像按钮和像框。如果用户机器无法访问Facebook,页面上会出现一些“丑陋”的部分,应该有Facebook插件。检查用户机器是否可以访问Facebook

有谁知道如何解决这个问题?我的意思是如何检查用户机器是否可以访问Facebook?任何窍门是赞赏。

+0

因此,当用户无法访问Facebook时会发生什么?从HTTP GET请求到facebok.com的响应是什么?我第一次尝试将这个响应变成一个布尔值,并输出不同的代码/显示取决于这个布尔 – Cystack

回答

0

我设法通过使用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> 
0

您可以加载在Facebook的服务器隐藏图像,然后添加的onError处理函数,这也让你知道如果Facebook无法访问:

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

PS:这是绝对荒谬的,中国块的Facebook。

+0

我有同样的想法。我试图这样: $ .get(“http://www.facebook.com/ajax/connect/external_node_connect.php”,function(){ alert(“load facebook success”); }); 但它不起作用。 Chrome控制台显示如下错误: XMLHttpRequest无法加载http://www.facebook.com/ajax/connect/external_node_connect.php。访问控制 - 允许来源不允许访问http:// localhost:2470 您知道为什么吗? –

+0

如果你已经在使用jquery,那么它也可以工作。如果你需要一种方法来测试它,只需将facebook.com重新路由到你的主机文件中的其他东西。 – bkaid

+0

是的,我现在可以访问FB(我现在在英国)。但是,该错误出现在Chrome控制台中。在提琴手那请求确实发布了,并且返回了200个状态。你能看到我的jQuery代码的任何问题? –

相关问题