脸书SDK方法
由于您需要检查用户是否有权访问 facebook,因此您可以尝试初始化脸书软件开发工具包并以此为基础你的逻辑
根据文件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)
}
})