Facebook SDK メソッド
ユーザーが Facebook にアクセスできるかどうかを確認する必要があるため、Facebook SDKを初期化し、それに基づいてロジックを作成することができます。
ドキュメント関数によるとwindow.fbAsyncInit
、SDK の初期化が成功すると呼び出されるため、次のような効果を得ることができます。
var campaignLink = "http://www.oursite.com/campaign";
window.fbAsyncInit = function() {
// facebook sdk initialized, change link
campaignLink = "http://www.facebook.com/example";
}
これはすべて理論上のものであり、テストされていないことに注意してください。詳細については、こちらを参照してください。
https://developers.facebook.com/docs/reference/javascript/
ファビコン方式
この関数は、指定された URL の favicon.ico ファイルを読み込もうとし、それを (ユーザーが) サイトにアクセスできるかどうかの指標として使用します。サイトにファビコンがあることを前提としていますが、存在することがわかっている別の画像に簡単に変更できます.. (Facebookのロゴの例)
function isSiteOnline(url,callback) {
// try to load favicon
var timer = setTimeout(function(){
// timeout after 5 seconds
callback(false);
},5000)
var img = document.createElement("img");
img.onload = function() {
clearTimeout(timer);
callback(true);
}
img.onerror = function() {
clearTimeout(timer);
callback(false);
}
img.src = url+"/favicon.ico";
}
使用法は、
isSiteOnline("http://www.facebook.com",function(found){
if(found) {
// site is online
}
else {
// site is offline (or favicon not found, or server is too slow)
}
})