2012-12-01 13 views
6

Eventuali duplicati:
What’s the best way to check if a website is up or not via JavaScriptVerificare se Facebook è bloccato quindi reindirizzare

Stiamo per lanciare una campagna attraverso la nostra pagina Facebook. Idealmente vorremmo che l'URL che usiamo per questa campagna (ad esempio www.oursite.com/campaign) reindirizzasse tutto il traffico sul nostro URL di Facebook (ad esempio www.facebook.com/example). Tuttavia, molte reti sul posto di lavoro bloccano i siti di social media, quindi prima di reindirizzare automaticamente vorrei prima controllare se la rete dell'utente consente Facebook: se sì, reindirizzare a Facebook; se no, continua fino al nostro URL (www.oursite.com/campaign).

Qualsiasi aiuto sarebbe molto apprezzato,

Ryan (io sono ok con PHP, newb a JavaScript) Metodo

risposta

7

Facebook SDK

Dal momento che è necessario controllare se l'utente ha accesso a Facebook puoi provare a inizializzare il Facebook SDK e basare la tua logica su quello

Secondo la documentazione window.fbAsyncInit funzione viene chiamata su una corretta inizializzazione del SDK, così si potrebbe ottenere l'effetto con qualcosa di simile:

var campaignLink = "http://www.oursite.com/campaign"; 

window.fbAsyncInit = function() { 
    // facebook sdk initialized, change link 
    campaignLink = "http://www.facebook.com/example"; 
} 

Si prega di notare che questo è tutto teorica e non testato, potrebbe essere necessario leggere di più qui

https://developers.facebook.com/docs/reference/javascript/

metodo Favicon

Questa funzione tenta di caricare il file favicon.ico del URL in dotazione e lo prende come un indicatore se il sito è accessibile (dall'utente) o meno. Si presuppone che un sito ha una favicon, ma si potrebbe facilmente cambiare la situazione a un'altra immagine che sai la sua esistenza .. (ad esempio il logo 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"; 
} 

Uso sarebbe,

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) 
    } 
}) 
+0

roba pulita, Venerabile per voi signore. – Mahn

Problemi correlati