Apici e caratteri di controllo
Mentre è attiva una dialog (
alert,
confirm o
prompt) il browser è
bloccato! Nessuna operazione è possibile finché non viene cliccato
OK o
Annulla (o vengono premuti
Enter o
Esc sulla tastiera).
In
alert,
confirm e
prompt non ha importanza il
tipo di apici usati per il
messaggio, ma bisogna fare attenzione ad usarli in modo corretto.
Se usiamo i doppi apici per un messaggio di alert:
alert("Email errata") e vogliamo dire all'utente che, ad esempio, ha dimenticato di mettere la chiocciola (
@) non possiamo usare una sintassi del tipo:
alert("Hai dimenticato la "@" nel tuo indirizzo") perché il primo doppio apice che racchiude
@ terminerebbe la stringa, e l'interprete JavaScript darebbe un errore (appunto) di
Stringa non terminata o di
illegal character (riferendosi ad
@).
Per ovviare possiamo seguire due strade:
1.- racchiudere il messaggio in apici
singoli (e gli apici doppi diventerebbero parte della stringa):
alert('Hai dimenticato la "@" nel tuo indirizzo')
2.- usare la notazione
\" per far si che l'interprete ignori il doppio apice:
alert("Hai dimenticato la \"@\" nel tuo indirizzo")
Queste due soluzioni sono equivalenti. In particolare la soluzione
1. (invertendo gli apici:
alert("Hai dimenticato la '@' nel tuo indirizzo")) funziona allo stesso modo. Qui i doppi apici sono i delimitatori di stringa, e gli apici singoli
fanno parte della stringa.
Inoltre in
alert,
confirm e
prompt non è possibile usare i normail tag HTML, quindi non è possibile ad esempio centrare un testo o renderlo grassetto, oppure usare i caratteri estesi al posto dei normali accentati ("è" invece di "è").
È possibile però usare alcuni caratteri di controllo per andare a capo, dare delle tabulazioni ecc.
Questi caratteri sono:
\n va in un rigo nuovo
\t tabulazione
\' visualizza il singolo apice
\" visualizza i doppi apici
\\ visualizza backslash
È evidente che il carattere "backslash" (
\ ) ha un significato particolare:
- nei primi due casi dice all'interprete di "fare qualcosa" (andare a capo, dare una tabulazione)
- negli ultimi tre casi dice all'interprete di "visualizzare un apice singolo", "visualizzare un doppio apice", "visualizzare un backslash" (quest'ultimo come ovvia conseguenza dell'uso di "
\" come carattere di controllo).
Un'ultimo avviso: a differenza dell'HTML standard più spazi consecutivi vengono effettivamente visualizzati.
Il pulsante che segue visualizza un
alert in cui vengono usati tutti questi caratteri di controllo:
La stringa ("messaggio") usato dall'
alert è:
<SCRIPT>
<!--
var stringalert="Questa è la prima riga\n\nquesta riga sta due righi più sotto.\n\n\tAnche questa è due righi più sotto, ma è spostata a destra con una tabulazione.\n\n Invece questa è spostata a destra da una serie di \"spazi\"\n\n\nIl carattere seguente è un doppio apice: \" (visualizzato con \\\");\n\n\nIl carattere seguente è un\'apice singolo: \' (visualizzato con \\\');\n\n\nIl carattere seguente è un backslash: \\ (visualizzato con \\\\);\n\n\nSe si potesse usare HTML la seguente parola sarebbe in <B>grassetto</B>, ma non lo è mentre la seguente lettera sarebbe una è (e accentata)";
//-->
</SCRIPT>
(naturalmente tutto in una riga, qui è spezzato su più righe solo per esigenze di impaginazione)