Проверьте, заблокирован ли Facebook, а затем перенаправляет

Возможный дубликат:
Каков наилучший способ проверить, находится ли сайт вверх или нет с помощью JavaScript

Мы собираемся запустить кампанию через нашу страницу Facebook. В идеале мы хотели бы, чтобы URL-адрес, который мы используем для этой кампании (например, www.oursite.com/campaign), перенаправляет весь трафик на наш URL-адрес Facebook (например, www.facebook.com/example). Тем не менее, многие сети на рабочем месте блокируют сайты социальных сетей, поэтому перед автоматическим перенаправлением я хотел бы сначала проверить, разрешает ли сеть пользователя Facebook: если да, перенаправляйтесь на Facebook; если нет, перейдите к нашему URL-адресу (www.oursite.com/campaign).

Любая помощь будет принята с благодарностью,

Райан (я в порядке с PHP, newb для javascript)

Related of "Проверьте, заблокирован ли Facebook, а затем перенаправляет"

Метод 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) } })