检查Facebook是否被阻止然后重定向

时间:2012-12-01 23:08:49

标签: php javascript

  

可能重复:
  What’s the best way to check if a website is up or not via JavaScript

我们即将通过我们的Facebook页面投放广告系列。理想情况下,我们希望将我们用于此广告系列的网址(例如www.oursite.com/campaign)重定向到我们的Facebook网址(例如www.facebook.com/example)。然而,许多工作场所网络阻止社交媒体网站,所以在自动重定向之前,我想首先检查用户的网络是否允许Facebook:如果是,则重定向到Facebook;如果不是,请继续访问我们的网址(www.oursite.com/campaign)。

非常感谢任何帮助,

赖安 (我对PHP很好,对javascript来说是新手)

1 个答案:

答案 0 :(得分:9)

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/

Favicon方法

此函数尝试加载提供的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)
    }
})
相关问题