Newsgroup: it.comp.lang.javascript
Titolo: richiesta chiarimenti su codice per distinguere i due browsers

Ciao a tutti
Per distinguere i due browsers so che si utilizzano navigator.appName,
navigator.appCodeName e navigator.appVersion.
Ho invece trovato un listato in cui, per decidere se eseguire "l'istruzione
Netscape" o "quella Explorer" ci si appoggia a due variabili booleane:
<snip>
var n=false;
var e=false;
if(document.layers) {n=true;}
if(document.all) {e=true;}
<snip>
Mi sembra di capire che le due variabili funzionano come flag per cui quella
che diventa true indica il browser utilizzato e poi (nel codice successivo
che non ho riportato) abilita l'esecuzione delle istruzioni vincolate al suo
valore.
Giusto fin qui?
Quello che non capisco č perchč document.layers č true solo su Netscape
mentre document.all č true solo su Explorer.
Qualcuno č cosě cortese da darmi indicazioni?
Grazie
Camilla

 Grazie
Di niente, se hai bisogno di ulteriori chiarimenti chiedi pure.
P.S.
Tale metodo, cmq, ti identifica alla "lontana" i browser usati. Infatti in
quel modo non puoi sapere quale versione del browser stai usando.
Inoltre, document.layers non e' utilizzato da NN6.
Cmq se hai pazienza, tra poco nel NG dovrebbe "apparire" uno script per lo
sniffing del browser orientato ad oggetti.
Niente di complesso ed abbastanza banale, ma io "ed una certa persona" ;)
stavamo giusto giusto cercando di definire una sorta di sniffer standard da
usare nella totalita' dei casi.

sniffing del browser orientato ad oggetti.
dato che document.layers non sarà compatibile con NN6, 
se metto questo
 var ie=(document.all)?1:0;
if (ie=="0") self.location="paginaottimizzataperNetscape.htm"
//segue il codice della pagina normale.
dovrebbe funzionare sia con NN6 che NN4.7x,giusto?
Mi viene un dubbio per Opera: non conosco le tabelle di compatibilità,
ma scrivendo un codice privo di comandi "solo per Explorer", dovrebbe
essere leggibile anche da Opera, mentre quello per Navigator non
perfettamente. Giusto?
quindi , dichiarando la variabile:
var opera= metodo_che_ignoro_per _riconoscere _se _il _browser_è_opera
var ie=(document.all)?1:0;
if (opera) ie=1;  // così non legge la riga successiva
if (ie=="0") self.location="paginaottimizzataperNetscape.htm"
 //segue il codice della pagina normale.
Potrebbe funzionare con tutti i browser (NN4.51, NN4.7x, NN6.x, IE,
Opera)?
Ciao!! 
grazie.
Waitan (Diego)
-------------------------------------------------------------------
"I suoni di Gommalacca sono suoni di superficie, di striscio...
solo i cantanti e gli indovini li praticano, solo i fortunati li ascoltano"
-------------------------------------------------------------------
togli NIGANSHENME!? per rispondere in email

 Opera)?
Non nel migliore del modi, cmq.
Una domanda: Come mai ti interessa particolarmente opera?

Una domanda: Come mai ti interessa particolarmente opera?
Perchè , non ricordo dove, ma ho letto una frase molto intelligente
che diceva: 
"un sito [server side] fatto bene non è quello con grafica bellissima
e animazioni flash, ma quello che si carica nel minor tempo possibile
e che è compatibile con il maggior numero di browser possibile."
Ora, a parte il tempo di caricamento, questo vale anche per un sito
client-side (cioè su CD), che è quello che sto facendo.
Vabbè, testerò il mio "accrocchio" stasera (su PC World di Ottobre
trovi IE 5.5 , NS 4.75 e Opera 4.03) installando Opera.
Penso (spero) che Opera sia free.
ciao!!


 Penso (spero) che Opera sia free.
L'ho scaricato poc'anzi (4.02 mi pare) ' trial version x 30 giorni.
Inoltre supporta il JS *solo* fino alla versione 1.1...
Ho fatto un paio di testing in JS e ho preferito lasciar perdere il supporto
di Opera, per il momento.

di Opera, per il momento.
Caspita!! Se non è free il numero di possibili utenti di Opera scende
ancora...... quindi...... dato che sono alle prime armi, lo posso
anche tralasciare(poi non mi è stato rischiesto la compatibilità con
Opera, solo con IE e NS, che già è un bel lavoro...)
Ciao e grazie per le spiegazioni.
ps
(non sapevo tu fossi un "purista" convinto, è da 2 giorni che ho
"sottoscritto" questo NG e ho letto pochissimi messaggi. Volevo prima
lurkare un bel po', ma non ho resistito .....la questione era troppo
interessante!!)


 Opera, solo con IE e NS, che già è un bel lavoro...)
Meglio che condsideri anche Opera... tanto e' molto buono (quasi come
IE)...e' vero che supporta un javascript un po' strano (per dire non riesco
a fargli aprire una finestra di popup.. me la apre cmq a schermo intero), ma
per le altre cose (HTML 4 e CSS) e' perfetto.
--
Laz  | ICQ: 26989309 | 
l...@libero.it
 | 245WU/2487hrs |
|   
http://heinlein.cjb.net
 - Sito italiano su RAH   |
|  
http://www.fumetti.org/inducks/
 - Fumetti Disney  |
|________"Any comments?"_"Nothing printable."________|

la questione era troppo interessante!!)
;)

ma per le altre cose (HTML 4 e CSS) e' perfetto.
A parte che graficamente ogni tanto lo scrolling sbarella (su Win2k almeno).
Cmq sono convinto anche io che Opera abbia delle buone potenzialita', solo
che dovrebbe quantomeno fixare la parte relativa al linguaggio di
scripting....
Inoltre guardando un po' sul loro sito non ho trovato alcuna documentazione
inerente ad un manuale tecnico o ad una reference. :/

male. 8)
Anch'io lo penso: ma  ripeto, quando hai l'acqua alla gola...(nel
senso che devo sbrigarmi , assolutamente) prima cerchi di rispettare
le scadenze con un lavoro "decente" (ma funzionante), pooooooooi, con
piů calma, lo modifichi ,facendo un lavoro "pulito".
Quando saprň usare bene HTML e JS allora potrň permettermi di fare fin
da subito un lavoro "pulito" :))
(sempre piu' OT!:))
ciao e grazie di tutti i consigli!!



<snip>
Non mi è del tutto chiaro se il problema dei comportamenti differenti
comprende o meno la compatibilità verso il basso. Mi chiedo cioè: vale il
criterio che del codice JavaScript scritto per IE 4.0 sia correttamente
eseguito dagli IE più recenti? (E' sottintesa ovviamente la stessa
piattaforma operativa)
Infine spero (ma temo, però non si sa mai...) di non fare una domanda
stupida ma mi sono più volte chiesta (mi riferisco a win) se fosse possibile
installare più versioni successive dello stesso browser sulla stessa
macchina per testare i comportamenti degli script o se bisogna
necessariamente disporre di più computers?
Ciao a tutti, se l'ultima domanda è troppo stupida ignoratela, capirò.
Camilla

 Ciao a tutti, se l'ultima domanda è troppo stupida ignoratela, capirò.
Ma figurati, ci mancherebbe.


Aggiungo che in questi casi, volendo partizionare l'hard disk, si usa
un programma chiamato Partition Magic 5.01 : ottimo ma non č free.
Volendo scegliere qualcosa di free (ma non altrettanto semplice da
usare) prova 
www.ranish.com
 
Cosě ti crei 2 o  3 partizioni, con altrettanti Windows (se usi
windows): io faccio cosě: nella prima ho solo explorer 5.01.
Nella seconda ho explorer 5.5, netscape 4.73 e Opera 4.02.
Cosě "testo" le mie "creazioni" sulla seconda partizione, dove vedo
che puntualmente ci sono casini in HTML con NS, e il buio piů totale
per Javascript con Opera.  IE5.5 non l'ho ancora provato. Mi trovo
bene con il 5.01 
Ciao!!


Se volete uno a cui tirare le pietre , eccomi, SONO IO ,  uso ...........
.....suspance.........
.....suspance.........
.....suspance.........
............... MICROZOZ FRONT PAGE 4 !!!
--
 Visita 
WWW.GIGIOLAND.COM
   ICQ UIN : 72893095

 bene con il 5.01
OK grazie per il consiglio, appena entrerň nel vivo di JavaScript e
comincerň a dover fare test cross-browsers mi metterň a smanettare anche con
queste partizioni per aggiungere qualche browser.
ciao, Camilla

 all'esterno.
In Homesite 4.5 c'e' la possibilita' di integrare anch'esso.
Cmq non scordarti la possibilita' di configurare browser esterni.

 Nella seconda ho explorer 5.5, netscape 4.73 e Opera 4.02.
Io a casa ho due PC con i quali testo le eventuali differenze, mentre a
lavoro ho gia' un parco macchine piu' ampio su cui fare i testing
(sfortunatamente, niente Linux e/o Mac da queste parti... :( )