Возможный дубликат:
Каков наилучший способ проверить, находится ли сайт вверх или нет с помощью JavaScript
Мы собираемся запустить кампанию через нашу страницу Facebook. В идеале мы хотели бы, чтобы URL-адрес, который мы используем для этой кампании (например, www.oursite.com/campaign), перенаправляет весь трафик на наш URL-адрес Facebook (например, www.facebook.com/example). Тем не менее, многие сети на рабочем месте блокируют сайты социальных сетей, поэтому перед автоматическим перенаправлением я хотел бы сначала проверить, разрешает ли сеть пользователя Facebook: если да, перенаправляйтесь на Facebook; если нет, перейдите к нашему URL-адресу (www.oursite.com/campaign).
Любая помощь будет принята с благодарностью,
Райан (я в порядке с PHP, newb для javascript)
Метод SDK для Facebook
Поскольку вам нужно проверить, имеет ли пользователь доступ к facebook, вы можете попытаться инициализировать 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/
Метод Favicon
Эта функция пытается загрузить файл favicon.ico поставляемого URL-адреса и принимает его как индикатор того, доступен ли сайт (пользователем) или нет. Предполагается, что сайт имеет значок, но вы можете легко изменить его на другое изображение, которое, как вы знаете, существует .. (например, логотип 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) } })