7

重複の可能性:
JavaScriptを介してWebサイトが稼働しているかどうかを確認するための最良の方法は何ですか

Facebookページでキャンペーンを実行しようとしています。理想的には、このキャンペーンに使用しているURL(www.oursite.com/campaignなど)がすべてのトラフィックをFacebookのURL(www.facebook.com/exampleなど)にリダイレクトするようにします。ただし、多くの職場のネットワークはソーシャルメディアサイトをブロックしているため、自動的にリダイレクトする前に、まずユーザーのネットワークでFacebookが許可されているかどうかを確認します。許可されている場合はFacebookにリダイレクトします。いいえの場合は、URL(www.oursite.com/campaign)に進みます。

どんな助けでも大歓迎です、

ライアン(私はPHPで大丈夫です、javascriptの初心者です)

4

1 に答える 1

12

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)
    }
})
于 2012-12-01T23:34:06.743 に答える