|
Con questo breve articolo vedremo come utilizzare Javascript lato client ovvero lato browser utente per capire da quale server o dominio stiamo caricando una pagina web. In particolare lo script che mostreremo potrà essere utile per diversificare l'elaborazione javascript o gli effetti di stile applicati alla pagina web in funzione del server da cui essa viene caricata.
Supponiamo nel nostro esempio di avere due server, vale a dire:
- un server di sviluppo in cui eseguiamo le nostre prove e testiamo il codice che compone le pagine web;
- un server di produzione in cui riversiamo il codice testato e funzionante per renderlo disponibile e fruibile agli utenti;
Il server di sviluppo risponde all'indirizzo:
- http://localhost/mentegeniale
mentre il server di produzione risponde all'indirizzo:
- http://mentegeniale.altervista.org
Il codice necessario ad eseguire il nostro controllo è contenuto all'interno della seguente funzione Javascript:
<script type="text/javascript">
function checkServer() {
var svilCheck = 'localhost';
var proCheck = 'altervista.org';
var currentLocation = window.location.href;
var currentServer = '';
if (currentLocation.indexOf(proCheck) > - 1)
currentServer = 'PRODUCTION';
else if (currentLocation.indexOf(svilCheck) > - 1)
currentServer = 'SVILUPPO';
else currentServer = 'SCONOSCIUTO';
return currentServer;
}
</script>
La funzionalità chiave usata nel javascript appena visto è la window.location che recupera l'indirizzo (URL) della pagina web appena caricata. In realtà, window.location non è una funzione bensì un oggetto javascript dotato di diverse proprietà fra cui:
- location.href che restituisce l'URL della pagina corrente;
- location.hostname che restituisce il nome del dominio dell'host web;
- location.pathname che restituisce il percorso ed il nome del file della pagina corrente;
- location.protocol che restituisce il protocollo web utilizzato per il caricamento della pagina (vale a dire http:// o https://);
- location.assign che carica un nuovo documento;
Per il nostro scopo abbiamo utilizzato la proprietà href dell'oggetto location.
Come ultima nota evidenziamo l'utilizzo in questo script della funzione indexOf che è associata a tutti gli oggetti di tipo stringa; indexOf restituisce la posizione all'interno di una stringa della prima occorrenza trovata di uno specifico valore.
Per concludere diamo il codice HTML di una semplicissima pagina web che si limita a visualizzare un alert (un messaggio di avviso) che mostra la stringa risultante dall'esecuzione del controllo dell'indirizzo del server da cui è stata caricata:
<!doctype html>
<html>
<head>
<title>Check URL Server</title>
<script type="text/javascript">
function checkServer() {
var svilCheck = 'localhost';
var proCheck = 'altervista.org';
var currentLocation = window.location.href;
var currentServer = '';
if (currentLocation.indexOf(proCheck) > - 1)
currentServer = 'PRODUCTION';
else if (currentLocation.indexOf(svilCheck) > - 1)
currentServer = 'SVILUPPO';
else currentServer = 'SCONOSCIUTO';
return currentServer;
}
</script>
</head>
<body>
<script>
alert('Ambiente: ' + checkServer());
document.write('Ambiente: ' + checkServer());
</script>
</body>
</html>
Per un esempio di funzionamento potete selezionare questo link.
|