Visualizzazione post con etichetta { JAVA SCRIPT }. Mostra tutti i post
Visualizzazione post con etichetta { JAVA SCRIPT }. Mostra tutti i post

mercoledì 27 giugno 2012

Pagina indietro con JavaScript

Vediamo come realizzare un semplice pulsante « indietro con JavaScript

Spesso può capitare di volere inserire in una nostra pagina il pulsante « indietro. Può essere utile ad esempio in una schermata dove controlliamo i dati inseriti in un form, e qualora i dati siano errati, con il pulsante «  indietro si può rimandare il nostro utente alla pagina di provenienza, per controllare eventuali errori o dati mancanti.

Vediamo il codice

<a href="" onClick="javascript:history.back();return false">« indietro</a>

Spieghiamo

Per controllare lo storico della navigazione dell'utente, utilizziamo history.back() di JavaScript.
Possiamo ottenere lo stesso risultato anche utilizzando history.go(-1). 

Vediamo come

<a href="" onClick="javascript:history.go(-1);return false">« indietro</a>

Spieghiamo

Utilizzando history.go(-1) l'utente verrà rimandato indietro di una pagina, rispetto allo storico della sua navigazione.
Volendo posso impostare un numero diverso di "passi indietro".

Vediamo come

<a href="" onClick="javascript:history.go(-3);return false">« indietro</a>

Spieghiamo


In questo caso, cliccando « indietro l'utente farà 3 passi indietro sullo storico della sua navigazione.

Nota bene

Se inseriamo il link « indietro su una pagina B che normalmente l'utente raggiunge da un'altra pagina A del nostro sito, ma per un caso fortuito la pagina B può essere raggiunta anche da un sito esterno C, chiaramente il pulsante « indietro invierà l'utente, al sito esterno C dal quale proviene.

martedì 26 giugno 2012

Trovare URL pagina con JavaScript

Vediamo come conoscere e utilizzare l'URL della nostra pagina attuale con JavaScript.

Trovare l'url della pagina con JavaScript è molto semplice, basta utilizzare self.location.href.

Vediamo come

<!DOCTYPE HTML>
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>URL con JavaScript</title>
	
		<script>
		function mio_url(){
			document.getElementById('scriviqui').innerHTML="Il tuo URL è: <span style='color:red'>" + self.location.href + "</span>";
		}
		</script>
	
	</head>
	<body>
	
		<a href="#" onClick="mio_url()">Stampa a video il mio URL</a>
		
		<p id="scriviqui"></p>
	
	</body>
</html>

Spieghiamo

In questo semplice esempio, creo la funzione mio_url(), con la quale individuo l'elemento che nella pagina ha id=scriviqui e ci stampo dentro l'url della mia pagina, trovato con self.location.href. Da notare che per stampare l'URL ho utilizzato innerHTML (vedi riga 9 dell'esempio riportato sopra).

Volendo posso utilizzare l'URL così recuperato, per stampare un alert, un piccolo messaggio a video con il risultato.

Vediamo come

<!DOCTYPE HTML>
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>URL con JavaScript</title>
	
		<script>
		function mio_url(){
			alert("Il tuo URL è:\n" + self.location.href);
		}
		</script>
	
	</head>
	<body>
	
		<a href="#" onClick="mio_url()">Visualizza alert con il mio URL</a>
	
	</body>
</html>

Spieghiamo

In questo caso stamperemo l'URL della nostra pagina attuale in un messaggio alert (vedi riga 9 dell'esempio riportato sopra).

domenica 24 giugno 2012

Overlay Banner con chiusura a tempo

Vediamo come realizzare un overlay, ovvero un livello sopra i contenuti, con chiusura a tempo.

Esempio


Con un Overlay possiamo facilmente e con poche righe di codice, visualizzare un div contenente testo e foto, o solitamente un banner pubblicitario, che scompare dopo un tempo prestabilito.

Vediamo il codice Java Script

<script type="text/javascript">
function timeout(){
 setTimeout(function(){
  document.getElementById('banner').style.display="none"
 }, 5000);
}
</script>

Un po' di CSS

<style type="text/css">
body {
 margin:0 auto;
}
#content {
 position: absolute;
 height: 70%;
 width: 70%;
 left:15%;
 top:15%;
 text-align:center;
 background: #EAEAEA;
}
#banner {
 position: absolute;
 z-index: 1;
 height: 100%;
 width: 100%;
 background-color: rgba(0, 0, 0, 0.8);
 left:0;
 top:0;
}
#banner img{
 position: absolute;
 left: -234px;
 margin: 50% 0 0 50%;
 top: -30px;
}
</style>

E in fine i contenuti

<body onLoad="timeout()">

<div id="content"><p>Contenuto</p></div>

 <div id="banner">
        <img name="banner" src="" width="468" height="60" alt="Il banner si chiuderà in 5 sec..." style="background-color: #FFCC00">
    </div>
Niente paura a fine guida ho riportato il codice completo dell'esempio.

Spieghiamo

Sfruttiamo SetTimeout del JavaScript, indicando il nome del <div> che contiene il nostro banner, (vedi riga 4 del codice JavaScript).
Il valore che ho preimpostato, 5000, (vedi riga 5 del codice JavaScript) corrisponde a 5 secondi e può essere modificato a piacimento.
A seguire, c'è un po' di CSS che serve a impostare una velina semitrasparente sopra i contenuti, così da far capire all'utente che "sotto c'è qualcosa".
Molto probabilmente il codice CSS andrà ottimizzato in base al sito esistente.

E in fine, un paio di <div>, uno per i contenuti della pagina (vedi riga 3 del codice HTML), l'altro per contenere il banner o quello che vogliamo (vedi riga 5 del codice HTML).

Nota bene

È importante non sottovalutare la riga 1 del codice HTML, dove ho richiamato la funzione JavaScript timeout().
Quella riga richiama e avvia la funzione JavaScript, ed è fondamentale per il funzionamento dell' Overlay.

Tutto il codice dell'Overlay

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>OVERLAY</title>

<script type="text/javascript">
function timeout(){
 setTimeout(function(){
  document.getElementById('banner').style.display="none"
 }, 5000);
}
</script>

<style type="text/css">
body {
 margin:0 auto;
}
#content {
 position: absolute;
 height: 70%;
 width: 70%;
 left:15%;
 top:15%;
 text-align:center;
 background: #EAEAEA;
}
#banner {
 position: absolute;
 z-index: 1;
 height: 100%;
 width: 100%;
 background-color: rgba(0, 0, 0, 0.8);
 left:0;
 top:0;
}
#banner img{
 position: absolute;
 left: -234px;
 margin: 50% 0 0 50%;
 top: -30px;
}
</style>
</head>

<body onLoad="timeout()">

<div id="content"><p>Contenuto</p></div>

 <div id="banner">
        <img name="banner" src="" width="468" height="60" alt="Il banner si chiuderà in 5 sec..." style="background-color: #FFCC00">
    </div>


</body>
</html>

venerdì 22 giugno 2012

Aprire link in una finestra personalizzata


Vediamo come fare per aprire il nostro link in un pop up con caratteristiche personalizzate.

Premetto che personalmente non amo molto le finestre personalizzate, perché ho l'impressione di forzare la volontà dell'utente, nell'aprire una finestra "come dico io".

Ma effettivamente, in alcuni casi, può risultare interessante offrire all'utente un pop up che, per la tipologia di informazione fornita, può risultare comodo se visualizzato estemporaneamente alla pagina. Vediamo perciò come fare per aprire con un link, una piccola finestra di dimensioni personalizzate.

Per aprire la nostra finestra personalizzata chiediamo aiuto a JavaScript che grazie a window.open e a pochi parametri, ci permette di personalizzare ogni aspetto della nuova finestra.

Esempio

Il codice di base è semplice

<a href="#" onClick"javascript:window.open('http://www.example.com', '', 'width=600,height=400,menubar,toolbar,resizable');">Example.com</a>

Struttura

window.open(url,nome,specifiche,replace)

Spieghiamo

  • Con window.open chiediamo al JavaScript di aprire una nuova finestra;
  • Con url, specifichiamo l'url della pagina da raggiungere;
  • Sarebbe possibile aprire una nuova finestra vuota, semplicemente omettendo l'url;
  • Con nome possiamo specificare l'attributo di destinazione o il nome della finestra.
    I valori possibili sono: 
    • _blank (l'url viene aperto in una nuova finestra, impostazione predefinita);
    • _parent  (l'url viene aperto nel frame principale);
    • _self  (l'url sostituisce  la pagina corrente);
    • _top  (l'url sostituisce ogni set di frame presente);
    • nome (si può impostare il nome della finestra);
  • Con specifiche possiamo impostare una serie di valori separati da virgola.
    I valori possibili sono:
    • channelmode=yes/no  oppure 1/0  predefinito no
    • directories=yes/no  oppure 1/0   predefinito yes
    • fullscreen= yes/no  oppure 1/0  predefinito no
    • height=valore in pixels  predefinito minimo 100
    • left=valore in pixels  predefinito 0
    • location= yes/no  oppure 1/0  predefinito yes
    • menubar= yes/no  oppure 1/0  predefinito yes
    • resizable=yes/no  oppure 1/0  predefinito yes
    • scrollbars= yes/no  oppure 1/0  predefinito yes
    • status= yes/no  oppure 1/0  predefinito yes
    • titlebar= yes/no  oppure 1/0  predefinito yes
    • toolbar= yes/no  oppure 1/0  predefinito yes
    • top=valore in pixels  predefinito 0
    • width=valore in pixels  predefinito minimo 100
  • Con replace si gestisce l'elemento nella cronologia.
    I valori possibili sono:
    • true  (l'url si inserisce in cronologia);
    • false (l'url crea una nuova storia cronologica);

Spieghiamo

In questo esempio linchiamo la pagina http://www.example.com, lasciando vuoto il secondo parametro obbligatorio che quindi di default sarà _blank, poi impostiamo la larghezza della pagina a 600px, l'altezza a 400px, impostiamo il menù della pagina, che senza un valore settato risulta yes di default, lo stesso per la toolbar e per resizabile che hanno sempre yes di default.

Volendo si può scorporare la funzione, se ad esempio si deve utilizzare più volte nella pagina lo stesso link, questa soluzione può essere sicuramente più versatile.

Vediamo un esempio con JavaScript in head


<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Nuova Finestra Example.com</title>
<script type="text/javascript">
 function nuova_finestra()
 {
  window.open('http://www.example.com', '', 'left=100,top=100,width=600,height=400,menubar,toolbar,resizable')
 }
</script>
</head>

 <body>
  <a href="#" onclick="nuova_finestra()">Example.com</a>
  <input type="button" value="Button Nuova Finestra" onclick="nuova_finestra()" />
   
 </body>
 
</html>

Spieghiamo

Ho scorportato la funzione JavaScript e l'ho posta in <head> tra i tag <script>.
Tutte le volte che dalla pagina vorrò richiamare la funzione nuova_finestra(), righe nell'esempio da 6 a 11, basterà inserire nel link o nell'onclick nuova_finestra() come riportato nell'esempio alle righe 15 e 16, rispettivamente un link e un button.
Sia il link che il button producono lo stesso risultato.

mercoledì 30 maggio 2012

Come sapere quale Browser ha il nostro utente

Vediamo come fare per sapere quale Browser sta utilizzando il nostro utente


Questo fantastico script gratuito scritto in PHP si chiama Browser.php. Grazie a un'attenta analisi del Browser riesce ad individuare:
  1. Tipo di Browser dell'utente
  2. Versione del Browser
  3. User Agent completo
  4. Piattaforma del supporto
Esempio:


Spieghiamo:

Lo script si occupa di individuare e immagazzinare i dati proveniente dal Browser dell'utente, come riportato nell'esempio sopra. Sta poi a noi interpretarli e utilizzarli.

L'autore ad esempio consiglia un utilizzo di questo tipo:
$browser = new Browser();
if( $browser->getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) {
echo 'Stai Navigando con FireFox versione 2 o superiore';
}
In pratica controllo con if se il Browser è FireFox e se la versione è uguale o superiore a 2 quindi stampo il messaggio con echo.

Ho fatto un paio di test con Smartphone Android, iPhone e Tablet Android, e in ogni situazione lo script ha risposto segnalando puntualmente il Browser la sua versione, l'user agente e la piattaforma utilizzata, senza commettere mai errori.

Può sembrare superfluo dirlo, ma per il corretto funzionamento dello script è meglio non dimenticare di includerlo nel nostro file padre.

Esempio di inclusione nel nostro file:

<?php
//includo il file Browser.php nel mio file padre (ad esempio: example.php)
include("Browser.php");

//imposto il browser
$browser = new Browser();

//controllo con if se il Browser dell'utente 
//risponde alle caratteristiche impostate
if( $browser->getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) {

//stampo il messaggio Firefox SI
echo 'Stai Navigando con FireFox versione 2 o superiore';
}else{

//altrimenti stampo il messaggio FireFox NO o inferiore a 2
echo 'Stai Navigando con un Browser diverso da FireFox o inferiore a 2';
}
?>

martedì 29 maggio 2012

Slide Show semplice con JavaScript

Vediamo come visualizzare immagini in un div, senza ricaricare la pagina.

Con poche righe di codice, e con l'ausilio di JavaScript, realizzeremo un semplice visualizzatore di foto, che non ricarica necessariamente tutto il codice della pagina. Utile ad esempio, per allegare più foto a un articolo.

Esempio:

Foto di Ilari Blasi




Per realizzare questo semplice visualizzatore di foto, abbiamo bisogno di tre cose:
  1. Il codice JavaScript che prende l'url della foto cliccata e lo memorizza in una variabile
  2. Un menù di link alle foto da visualizzare
  3. Il <div id="fotozoom">  nel quale pubblicheremo la foto cliccata

Vediamo il codice

<!DOCTYPE HTML>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Foto Show</title>
  <script type="text/javascript">
  <!--
  function zoom(foto)
  {
   var image = foto;
   document.getElementById('fotozoom').innerHTML='<img src=' + image + '>'; 
  }
  //-->
  </script>
 </head>

 <body>
 
  <ul>
   <li><a href="#" onclick="javascript:zoom('2.jpg');">Foto 1</a></li>
   <li><a href="#" onclick="javascript:zoom('3.jpg');">Foto 2</a></li>
   <li><a href="#" onclick="javascript:zoom('1.jpg');">Foto 3</a></li>
  </ul>
  
  <div id="fotozoom"><img src="1.jpg" alt=""></div>
  
 </body>
 
</html>

Spieghiamo

Il codice dalla riga 6 alla riga 14 memorizza il link al clic, lo rende una variabile e predispone il codice HTML da stampare per visualizzare la foto;

Il codice HTML dalla riga 19 alla 23 serve soltanto a visualizzare un menù di esempio, che potremo ricreare a nostro piacimento;

Il div alla riga 25 serve a contenere la foto che sceglieremo con il clic sul menù.

Da notare che ho preimpostato la prima foto nel div, che ho anche riporposto sul link 3. Questo per fare in modo che alla prima visualizzazione della pagina ci sia già una prima foto visualizzata, senza dovere cliccare nulla.

Download

Per comodità è possibile scaricare il file ZIP con il codice di esempio.

lunedì 28 maggio 2012

Includere file esterno con JavaScript

Includere un file HTML figlio in un file HTML padre con JavaScript

Le inclusioni sono comode per inserire uno stralcio di codice in più pagine, senza doverlo ripeterlo ogni volta uguale.

Esistono sostanzialmente due metodi per includere uno stralcio di codice esterno, in un file HTML: lato-server e lato-client. Quello che vediamo adesso è realizzato con JavaScript e appartiene alle inclusioni lato-client, cioè realizzate dal browser dell'utente.

Per includere lo stralcio di codice, che nell'esempio è un menù, abbiamo bisogno di:
  1. Una pagina padre, che chiameremo example.htm 
  2. Lo stralcio di codice da includere che scriveremo nel file che chiameremo menu.js

vediamo il codice della pagina padre example.htm

<!DOCTYPE HTML>
<html>
 <head>
  <script type="text/javascript" src="menu.js"></script>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Inclusione con JavaScript</title>
 </head>

 <body>

  <noscript>
   <strong>
    <p style="color:red;">Attenzione: per visualizzare correttamente questa pagina è necessario avere JavaScript attivato.</p>
   </strong>
  </noscript>

 <script type="text/javascript">
  document.write(inclusione);
 </script>

 </body>

</html>

e vediamo anche il codice del menù da includere nella pagina padre menu.js

inclusione="<ul><li><a href='home.htm'><span>Home</span></a></li><li><a href='prodotti.htm'><span>Prodotti</span></a><li><a href='chi.siamo.htm'><span>Chi siamo</span></a></li><li><a href='contatti.htm'><span>Contatti</span></a></li></ul>";

Spieghiamo:

Il primo codice di esempio è il file che chiameremo example.htm. È la nostra pagina padre, nella quale includeremo lo stralcio di codice.

Da notare il codice alla riga 4 che richiama il file esterno menu.js;

Il codice dalla riga 11 alla 15 serve per stampare un alert, nel caso in cui l'utente abbia JavaScript disabilitato sul browser;

Il codice dalla riga 17 alla 19 stampa il contenuto del file incluso;

Il secondo codice di esempio è il file che chiameremo menu.js.
Guardandolo bene ha una stranezza: è scritto tutto su una riga senza andare mai a capo...
Questo perché  la stringa che nell'esempio si chiama inclusione, non permette codice a capo.

Altra cosa che dovremo tenere a mente per evitare che il JavaScript generi un errore, è evitare l'utilizzo dei doppi apici ". Basterà utilizzare l'apice singolo '.

Ad esempio:

inclusione"<a href="http://www.example.com" title="Example">pippo</a>";

diventerà:

inclusione"<a href='http://www.example.com' title='Example'>pippo</a>";

oppure potrebbe diventare...:

inclusione"<a href=\"http://www.example.com\" title=\"Example\">pippo</a>";

Download

Per chiarezza è possibile scaricare i due file example.htm e menu.js (ZIP)

domenica 27 maggio 2012

Redirect con JavaScript

Semplice redirect con JavaScript

Con questo semplice codice è possibile inviare automaticamente l'utente a una nuova pagina.
<script type="text/javascript">
<!-- 
top.location.replace("http://www.example.com");
-->
</script>

Spieghiamo:

Si tratta dell'oggetto location.replace grazie al quale è possibile sostituire il nostro documento con il nuovo url.

È possibile utilizzare, con lo stesso risultato anche altri due oggetti del JavaScript: location.reload e location.href utilizzandoli come illustrato nei due esempi che seguono:
<script type="text/javascript">
<!-- 
top.location.reload("http://www.example.com");
-->
</script>
<script type="text/javascript">
<!-- 
top.location.href("http://www.example.com");
-->
</script>

Link che apre in _blank con JavaScript

Creare un link che apre in una nuova pagina del browser

Se vogliamo che il nostro clic apra in una nuova pagina del browser, possiamo farlo modificando con JavaScript il codice <a href come segue:

Vediamo il codice JavaScript:

<a href="http://www.example.com/" 
title="Apri EXAMPLE in una nuova pagina" 
onClick="window.open(this.href);return false">Example</a>

Spieghiamo:

Questa soluzione utilizza l'onClick del JavaScript per generare una nuova pagina del browser.

PRO:

È utile se utilizziamo un DOCTYPE XHTML 1.0 Transitional oppure un DOCTYPE HTML 4.01 Transitional e vogliamo mantenere la validazione W3C del codice.

CONTRO:

Non funziona correttamente se l'utente ha JavaScript disabilitato sul browser
Se utilizzeremo questa soluzione, sarà buona norma inserire un <noscript> nella pagina, che visualizzerà un messaggio se l'utente non ha JavaScript abilitato:

<noscript>
  <p style="color:red; text-align:center;">
    Attenzione: per visualizzare correttamente 
il contenuto della pagina occorre avere JavaScript abilitato.
  </p>
</noscript>