L’archivio del tag «javascript»

Sul 99% dei siti web personali e aziendali vengono pubblicati i contatti dei proprietari o amministratori. L’esperienza pluridecennale nella navigazione su internet ha però permesso al sottoscritto di constatare un triste fatto: una notevole parte dei web-masters non sa pubblicare i contatti in modo corretto.
Certo, comprendo che si tratta di un aspetto tecnologicamente banalissimo. Ma, data la ricorrenza del problema, bisogna parlarne.
Nel presente paragrafo facciamo un tentativo di formulare alcuni principi fondamentali in materia. Essi, logicamente, si dividono in due tipologie: tipografici e funzionali. Per rendere l’esposizione più organizzata, sarebbe più opportuno trattare quei principi per ogni tipo di contatto.

1. I numeri di telefono
I numeri di telefono pubblicati sul sito devono essere a) leggibili e b) cliccabili. La leggibilità dei numeri è tuttora importante perché non possiamo mai immaginare la situazione in cui si trova il nostro visitatore. Potrebbe avere la necessità di leggere il numero per poi dettarlo alla nonna che chiama dall’altra parte del mondo. Oppure leggerlo dallo schermo del computer per inserirlo manualmente nella memoria del telefono. In tal senso la tradizione tipicamente italiana di scrivere il numero di telefono in una sequenza di cifre continua è da considerare sbagliata: essa complica la vita dell’utente, costringendolo a uno sforzo inutile.
Provate a essere obiettivi e dire qual è il formato meglio leggibile:
+393337198198
+39 333 7 198 198
+39.333.7.198.198
(+39) 3337198198
La prima e la quarta versione corrispondono alla tradizione tipografica italiana, mentre la più leggibile è – secondo me – la seconda. La persona che legge non deve cercare disperatamente il punto dove si è fermata a leggere, temendo di avere saltato o ripetuto qualche cifra.
La cliccabilità dei numeri di telefono è altrettanto importante. Tantissime persone, almeno la metà, visiteranno il vostro sito da un dispositivo mobile: devono avere la possibilità di chiamare il numero indicato con meno sforzi fisici e mentali possibile.
Se siamo proprio pigri e ci fidiamo della qualità dei sistemi operativi installati sui telefoni, potremmo anche pubblicare i numeri come dei semplici testi:

+393337198198<br />
+39 333 7 198 198<br />
+39 333.7.198.198<br />
(+39) 3337198198

Ma in tal caso, per esempio, l’iPhone vedrà il terzo modo di scrive il numero come un testo semplice e non come numero cliccabile. Le altre tre opzioni, invece, diventano automaticamente dei link: in appena due «tap» si chiama il numero scelto.

Ma oltre all’iOS esistono tante versioni di Android e altri sistemi operativi. Non si può affidarsi al caso, bisogna rendere il numero cliccabile indipendentemente dal modo in cui viene visualizzato al visitatore. Quindi ci serviamo delle possibilità tecniche offerteci dal HTML5.
La sintassi è estremamente semplice:

<a href="tel:+393337198198">+39 333 7 198 198</a>

Esatto, è come un link con il protocollo «mailto:» che conoscete da anni. Non dimenticatevi di indicare anche il prefisso nazionale (sia nel tag del link che nel numero visibile sulla pagina) perché il visitatore può collegarsi al sito da qualsiasi punto del globo. Il telefono dopo il click sul numero chiederà solo di confermare l’intenzione di contattare il numero indicato.

Questo tipo di link funzionerà anche sui computer con lo Skype installato. Anche per questo è importante rendere intenzionalmente – con il codice – il numero sempre cliccabile.
Inoltre, per offrire il quadro completo della situazione, dovrei aggiungere che il link del numero di telefono può essere realizzato anche in altri modi. Ma non consiglio di utilizzarli in quanto essi sono interpretati correttamente solo da alcuni browser.

<a href="callto:393337198198">funziona su iPhone e Nokia</a>
<a href="wtai://wp/mc;393337198198">funziona su Android</a>
<a href="wtai://wp/mc;+393337198198">formato internazionale per Android</a>

È decisamente meglio utilizzare il protocollo universale tel: con il quale abbiamo iniziato: funzionerà da tutti i dispositivi. Ma se qualcuno avesse la strana e inspiegabile necessità di fare una distinzione tra i vari dispositivi mobili, si potrebbe utilizzare questo script in JavaScript:

<div id="header-phone"></div> 
 
<script>
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
  document.getElementById("header-phone").innerHTML = '<span><a href="tel:+ 380985554433 ">(098) 555-44-33</a></span>';
 } else {
  document.getElementById("header-phone").innerHTML = '<span>(098) 555-44-33</span> ';
}
</script>

La rappresentazione grafica dei numeri di telefono è invece una questione abbastanza banale. In CSS potremmo utilizzare una classe:

a.phone-style {
  color: #3e3a37;
  text-decoration: none;
}

Oppure applicare lo stesso stile selezionando i numeri di telefono cliccabili in questo modo:

a[href^="tel:"] {
  color: #3e3a37;
  text-decoration: none;
}

Con l’aiuto della pseudo classe before e dei simboli in unicode possiamo anche aggiungere l’icona di un apparecchio telefonico prima del numero:

a[href^="tel:"]:before {
  content: "\260e";
  margin-right: 0.5em;
}

Il risultato sarà +39 333 7 198 198.
Ora che sapete pubblicare i numeri di telefono in modo corretto, possiamo passare ai tipi di contatto meno sfortunati ma altrettanto importanti.
(La pubblicazione dei numeri di telefono sui siti che utilizzano il XSLT sarà trattata in un paragrafo a parte.)

2. La posta elettronica
Sorprendo tutti e ribadisco il concetto: anche l’indirizzo di posta elettronica pubblicato sul sito deve essere leggibile e cliccabile.
La leggibilità è data dal formato tradizionale dell’indirizzo: nome@sito.it
È giusto scrivere eugi@eugigufo.net
È sbagliato scrivere eugi [at] eugigufo.net, eugi (a) eugigufo.net e in tutte le altre forme fantasiose.
Non dovete temere di pubblicare l’indirizzo perché la protezione dallo spam è una delle mansioni per le quali il vostro sistemista prende lo stipendio. Se, invece, siete un privato, dovreste comunque essere in grado di impostare i doverosi filtri nella casella postale. In ogni caso, non è il compito del visitatore desideroso di contattarvi correggere manualmente il vostro indirizzo. Quest’ultimo deve essere pronto all’uso da subito.
La cliccabilità di un indirizzo e-mail può essere realizzata in almeno due modi ugualmente corretti. Il primo, tradizionale, prevede l’utilizzo del protocollo mailto: nel link. Lo conoscono tutti:

<a href="mailto:eugi@eugigufo.net.net">eugi@eugigufo.net.net</a>

In tal modo viene richiamato il programma client di posta elettronica preferito dall’utente. Non tutti i programmatori si ricordano, però, che è possibile far precompilare anche il soggetto della mail. Eppure è sufficiente aggiungere ?subject=soggetto dopo l’indirizzo:

<a href="mailto:eugi@eugigufo.net.net?subject=Paragrafo 19 di Inerario">eugi@eugigufo.net.net</a>

Il secondo modo valido di linkare l’indirizzo di posta elettronica consiste nel reindirizzare il cliente a una form dedicata (come lo faccio io su questo sito). Ricordiamoci, infatti, che molte persone preferiscono utilizzare la webmail e si infastidiscono per l’apertura dei programmi indesiderati. Inoltre, qualcuno potrebbe decidere di scrivervi da un dispositivo non proprio.

<a href="http://www.eugigufo.net/it/email/">eugi@eugigufo.net.net</a>

La buona regola comune ai due modi consiste nel rendere visibile, almeno da qualche parte, l’indirizzo al quale si propone di scrivere. Il visitatore deve avere la possibilità di salvare il contatto per utilizzarlo nel momento in cui gli è più comodo farlo. Vale anche per il numero di telefono.

3. Il contatto Skype
Non ho mai visto un contatto Skype scritto in una maniera illeggibile, quindi mi limito a sottolineare che è molto facile renderlo cliccabile:

<a href="skype:eugi.gufo">eugi.gufo</a>

Fatelo per la comodità dei visitatori.
Inoltre, la funzionalità del link può essere perfezionata con il parametro dell’azione desiderata. La sintassi diventa così:

<a href="skype:eugi.gufo?azione”>eugi.gufo</a>

Mentre i nomi delle azioni che è possibile aggiungere sono:
userinfo – la visualizzazione del profilo
add – l’aggiunta ai contatti
call – chiamata
chat – l’invio di un messaggio in chat
voicemail – l’invio di un messaggio vocale.
Bene, questi sono i tre tipi di contatti che tutti pubblicano sui propri siti. In tantissimi lo fanno sbagliando qualcosa. Non so quanto sia opportuno trattare i vari, numerosissimi, messenger: forse un giorno lo farò.
In ogni caso, spero di riuscire nella missione difficile di migliorare la comunicabilità nel mondo.


Nel paragrafo precedente avevo scritto del reindirizzamento (redirect 301) attuabile attraverso i file di configurazione del server (.htaccess e web.config). Quel metodo, però, potrebbe essere inadatto alle caratteristiche tecniche del vostro hosting (per esempio, potreste non avere i diritti per la modifica di quei file) o alle vostre esigenze/preferenze particolari.
Ebbene, il redirect può essere realizzato – a vostra scelta – anche tramite uno semplice script in HTML, PHP, JavaScript o JSP (Java). Prima di vederli tutti, avviso che il metodo in questione richiede l’intervento diretto sul codice delle singole pagine, quindi nel caso di una grande quantità di queste ultime potrebbe richiedere un lungo lavoro monotono.

1. Il redirect con il HTML
Il codice deve essere inserito tra i tag <head> e </head> della pagina dalla quale deve partire il reindirizzamento. Al posto dello 0 (zero) potete inserire qualsiasi altro numero intero: indica la quantità dei secondi dopo la quale il visitatore verrà automaticamente reindirizzato al nuovo URL da voi inserito.
Non dimenticatevi di inserire l’indirizzo del sito e/o della pagina al quale volete reindirizzare il visitatore!

<meta http-equiv="refresh" content="0; url=http://nuovosito.it">

Nel caso del valore 0 (zero secondi) il reindirizzamento deve essere immediato, il che ha dei suoi vantaggi. Mentre la scomodità della immediatezza – non a tutti evidente – consiste nel fatto che dopo l’avvenuto reindirizzamento il visitatore potrebbe per qualche suo motivo decidere di cliccare sul buttone «indietro» del browser. In questo ultimo caso finirà sulla pagina dalla quale era partito il reindirizzamento e verrà dunque nuovamente reindirizzato alla pagina che voleva lasciare!

2. Il redirect con il PHP
Anche questo codice – se scelto da voi – va inserito nel codice della pagina dalla quale deve partire il reindirizzamento.
L’unica cosa da modificare è l’indirizzo della destinazione del reindirizzamento.

<?php
  header('HTTP/1.1 301 Moved Permanently');
  header('Location: http://nuovosito.it/');
?>

Questo secondo script funzionerà perfettamente se le pagine del vostro sito hanno l’estensione .php Esisterebbe anche un modo di inserire il codice PHP nelle pagine HTML, ma questo non è l’argomento del presente paragrafo. Inoltre, c’è da sottolineare che le soluzioni perverse (intendo il mescolamento dei due linguaggi) fanno divertire un sacco lo sviluppatore, ma raramente hanno un reale senso pratico.

3. Il redirect con il JavaScript
Il codice va inserito tra i tag <head> e </head> della pagina dalla quale deve partire il reindirizzamento.
L’unica cosa da modificare è l’indirizzo della destinazione del reindirizzamento.

<script type="text/javascript">
  window.location.replace("http://nuovosito.it");
</script>

Ma è importante ricordare di un grosso difetto di questo terzo script: il visitatore potrebbe avere disabilitato l’esecuzione del JavaScript nel proprio browser. In tal caso, ovviamente, il reindirizzamento tramite il nostro script in JS non avverrà.

4. Il redirect con il JSP (Java)
Anche in questo caso non va dimenticato l’inserimento dell’indirizzo di destinazione.

<%
response.setStatus(301);
response.setHeader( "Location", "http://nuovosito.it/" );
response.setHeader( "Connection", "close" );
%>

Ecco, è tutto qui. Semplicissimo, vero?


Tutti sanno che aspetto ha l’indicazione del copyright su un sito web. Sul mio sito, per esempio, è fatta in questo modo:

Il 2000 è l’anno di fondazione, mentre il 2024 è l’anno corrente. Per l’anno di fondazione non sorge alcun problema: lo inseriamo a mano una volta e per sempre. Come invece fare in modo che l’anno corrente del copyright si aggiorni da solo la notte del capodanno? Oggi vi fornisco due risposte a questa domanda.
La risposta № 1. Il copyright in PHP.
Il codice da inserire al posto dell’anno corrente è semplicissimo:

<?php echo date('Y'); ?>

La lettera Y richiama l’intero numero dell’anno corrente. Se volete indicare solo le ultime due cifre (per esempio 24 al posto di 2024), sostituite la Y (maiuscola) con la y (minuscola). E non dimenticate l’indirizzo del vostro sito nel link! Infatti, molte persone si aspettano che il testo del copyright sia linkato e porti alla prima pagina del sito. Deludere le aspettative dei visitatori non è sempre una buona cosa.
Ah, ovviamente il codice PHP è da inserire proprio in quel punto della pagina dove intendete visualizzare la scritta del copyright.
La risposta № 2. Il copyright in JavaScript.
Tale soluzione può avere senso se non avete il PHP installato sul server o, per qualche motivo, avete le pagine fatte in HTML semplice.
Ecco il codice che utilizzavo io fino a qualche anno fa sul proprio sito (funziona!):

today = new Date();
year = today.getFullYear();
newy = year + 1 ;
BigDay = new Date("Jan 1, "+newy)
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
if (daysLeft <= 15 && daysLeft >= 0)
{document.writeln('<b>&copy; <a href="http://eugigufo.net/" style="text-decoration: none; color: #FFFFFF;">Eugi Gufo</a><br>2000&#8211;'+newy+'</b><br>');}
if (daysLeft > 15)
{document.writeln('<b>&copy; <a href="http://eugigufo.net/" style="text-decoration: none; color: #FFFFFF;">Eugi Gufo</a><br>2000&#8211;'+year+'</b>');}

Il difetto del JavaScript è però notevole: esso prende la data dalle impostazioni del computer del visitatore. Di conseguenza, le impostazioni eventualmente sbagliate determineranno la visualizzazione dell’anno corrente sbagliato.
Ovviamente il codice JavaScript è da inserire proprio in quel punto della pagina dove intendete visualizzare la scritta del copyright.
In ogni caso, conviene sempre automatizzare tutto ciò che è automatizzabile. Si risparmiano il tempo e le forze, si riducono le possibilità delle eventuali dimenticanze. Un sito con l’anno del copyright non aggiornato potrebbe apparire abbandonato e quindi poco attuale (almeno agli occhi dei visitatori nuovi).


Il nuovo traslitteratore

Un breve riassunto del post di oggi:
Sul mio sito è ora pubblica una nuova versione del traslitteratore dei caratteri cirillici in quelli latini e viceversa. Se avete voglia e tempo, testatelo pure (comunicandomi poi gli eventuali malfunzionamenti o errori).

Il testo completo del post di oggi:
Un giorno di agosto il mio cervello fu fulminato da una strana idea: «devo assolutamente riscrivere in PHP il tralitteratore che tantissimi anni fa scrissi in JavaScript». Probabilmente, non tutti i miei lettori sanno cosa sia un traslitteratore. E allora lo spiego brevemente.

Il traslitteratore (o il trasliter) è, come potete ben immaginare, uno strumento per la traslitterazione, cioè per la conversione delle parole scritte con i caratteri dell’alfabeto X nelle stesse parole scritte con i caratteri dell’alfabeto Y. Lo strumento esegue dunque una traduzione non linguistica ma grafica: essa non va confusa nemmeno con la trascrizione (pensate a quella fonetica che si trova sui dizionari). Proprio per questo per la traslitterazione da un alfabeto all’altro esiste più di un insieme di regole. Ogni insieme di regole è elaborato da una organizzazione nazionale o internazionale per la soddisfazione delle necessità determinate (così, il cirillico russo può essere traslitterato secondo una delle 13 regole ufficialmente esistenti). Le informazioni più dettagliate e, in un certo senso, più scientifiche si possono reperire sulla letteratura specializzata o sulla Wikipedia (dipende quali fonti preferite). Il traslitteratore realizzato da me, in particolare, permette di traslitterare i testi dall’alfabeto cirillico a quello latino e viceversa.

I difetti della prima versione del mio traslitteratore (scritto nel lontanissimo 2001 in JavaScript) furono i seguenti:
– non funzionava su tutti i computer perché dipendeva troppo dalle impostazioni del browser;
– sapeva convertire l’alfabeto latino in quello cirillico ma non al contrario;
– non conosceva tantissimi caratteri latini particolari (per esempio, le vocali accentate);
– funzionava correttamente solo con i testi battuti secondo la trascrizione della pronuncia russa.

I pregi della nuova versione del mio traslitteratore (scritto nell’agisto del 2016 in PHP) sono i seguenti:
– funziona senza problemi in tutti i browser (perché è in PHP!);
– può traslitterare dall’alfabeto cirillico in quello latino e viceversa;
– riesce a elaborare più caratteri cirillici (per esempio, anche quelli ucraini);
– traslittera il cirillico seguendo il sistema scientifico (raccomandato dall’ONU e utilizzato nel mondo scientifico e bibliotecario).

Ho creato il traslitteratore in questione per la traslitterazione dei testi, titoli dei libri, nomi degli autori etc ma (attenzione!) non dei dati anagrafici da utilizzare sui documenti di identità (in questo ultimo caso vanno seguite delle regole di traslitterazione diverse – prima o poi aggiungo tale opzione alla mia fantastica creatura).

Intanto provate a testarlo e, nel caso di errori o malfunzionamenti fatemi pure sapere: solo così potrò perfezionarlo ancora!