可能重复:
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来说是新手)
答案 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)
}
})