2011-08-31 150 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代碼的任何問題? –

相關問題