5 ebook a un prezzo eccezionale! ⌨️

Solo per un weekend: da venerdì 3 a lunedì 6 maggio.

Approfitta dell'offerta
Home
Iniziare a sviluppare per Netscape 6.0

06 Settembre 2001

Iniziare a sviluppare per Netscape 6.0

di

La versione 6.0 di Netscape è uscita da non molto tempo e subito sono emersi, nella comunità di sviluppatori Web, vari problemi legati alla compatibilità all'indietro del motore di scripting e del Document Object Model. Non tutto il codice html precedente, infatti, pare essere compatibile in maniera trasparente con il nuovo browser

In questo articolo cercheremo di capire come fare per ovviare a questi problemi, iniziando a vedere come riconoscere Netscape 6 come browser e di conseguenza come adattare il proprio codice alle nuove esigenze.

Riconoscimento Client-Side

Prima del rilascio di Microsoft Internet Explorer 5.x e di Netscape 6, eravamo abituati a riconoscere Internet Explorer 4.x e Netscape 4.x utilizzando script abbastanza semplici.
Ora la situazione si fa leggermente più complicata, ma non troppo.

  • Internet Explorer 4.x si riconosce perché possiede l’oggetto document.all, mentre non supporta il metodo document.getElementById()
  • Netscape Navigator 4.x si riconosce perché possiede l’oggetto document.layers.
  • Internet Explorer 5.x si riconosce perché possiede l’oggetto document.all, e contemporaneamente supporta il metodo document.getElementById()
  • Il nuovo Netscape 6 si riconosce perché non possiede l’oggetto document.all ma supporta il metodo document.getElementById()

Come si può vedere la situazione è un po’ intricata, ma non possono esserci incertezze, è sufficiente scrivere il codice seguente per ottenere una funzione che effettui l’identificazione del browser.

/

È quindi sufficiente utilizzare un oggetto Button all’interno di un Form per ottenere una MessageBox che indichi il browser utilizzato, come nell’esempio seguente:





/

Riconoscimento Server-Side

Anche dal lato server è possibile riconoscere agevolmente il nuovo Netscape 6.0, infatti la variabile server HTTP_USER_AGENT è molto esplicativa e contiene tutte le informazioni che ci servono.
In particolare la HTTP_USER_AGENT fornita da Netscape 6.01 in lingua inglese contiene una stringa del tipo:
“Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; m18) Gecko/20010131 Netscape6/6.01”

Pertanto è possibile ottenere una funzione che esegua il test del browser lato server parsificando questa variabile ed andando a cercare con precisione la stringa “Netscape6” che, come si può intuire, è valida per qualunque versione 6.x del browser.

Questo può essere fatto in Javascript Server Side con la seguente funzione:

function browserNS6 ()
{
ns6=false;
a = new String (Request[“HTTP_USER_AGENT”]);
if (a.indexOf(“Netscape6”) != -1)
ns6 = true;
return ns6;
}

/

Ecco lo stesso esempio scritto in VbScript

<%
function browserNS6 ()

if InStr(1, Request.ServerVariables(“HTTP_USER_AGENT”), “Netscape6”) >1 then
browserNS6 = true
else
browserNS6 = false
End if
End function
%>

/

Compatibilità all’indietro

Come è stato in precedenza accennato, per accedere agli oggetti di un documento di utilizzava document.layers per Nestscape 4.x e document.all per Explorer.
Adesso nel DOM di entrambi i browser esiste il nuovo metodo document.getElementById(), solo che mentre Explorer 5.x ha mantenuto la compatibilità all’indietro, la versione 6 di Netscape non riconosce più document.layers, quindi tutti gli script devono essere rivisti se si vuole supportare il nuovo browser.

La sintassi per utilizzare questo nuovo metodo è la seguente:

Explorer: variabile = document.all[‘id’]
Netscape 4.x: variabile = document.layers[‘id’]
Netscape 6.x ed Explorer 5.x: variabile = document.getElementById(‘id’)

Conclusioni

Come si è visto le differenze ci sono e possono generare qualche piccolo problema, soprattutto per via della mancata compatibilità all’indietro di Netscape rispetto ai layers (peraltro introdotti proprio da Nestcape nella versione 4.x).

Tutti quelli che hanno a che fare con DHTML cross-browser dovrebbero rivedere i propri script per verificarne il funzionamento con le nuove versioni.

L'autore

  • Massimo Canducci
    Massimo Canducci vanta oltre 25 anni di esperienza nel campo dell'innovazione e della digital transformation ed è Chief Innovation Officer per Engineering Ingegneria Informatica. È docente alla Singularity University, l'Università di Torino e l'Università di Pavia, e insegna in master MBA.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.