Newsgroup: it.comp.lang.javascript
Titolo: Cambio dell'url in base al browser

Ciao a tutti,
sono una neofita di Javascrtipt.
Vorrei che quando si entra nella pagina parte un controllo:
se uno ha explorer 5 o superiore
scriva nella pagina GATTO (con relativo link)
se uno non ce l'ha scriva nella pagina CANE (con relativo link)
Mi potete aiutare??
--
Ciao
Valentina
--------------
S: Evil...
B: Of course
(BtVS - 6x16)
http://ift-buffy.cjb.net/

 4)
{document.write ('<a href="gatto.htm">GATTO</a>')}
else
{document.write ('<a href="cane.htm">CANE</a>')}
</script>
MaRoK

 </script>
Mmm, non funziona.
Mi viene fuori sempre CANE sia con Opera, che con Netscape che con IE.
Forse non mi sono spiegata bene (che è possibilissimo ^__^).
Se uno ha IE5 o superiore deve venire scritto CORRETTO
se uno non ce l'ha (quindi ha Opera, Netscape, IE inferiore a 5 ecc...) deve
venire scritto SBAGLIATO.
(corretto e sbagliato devono avere associato un link).
Grazie mille


 venire scritto SBAGLIATO.
Una cosa del genere
<script type="text/javascript">
  if (is.nav5up)
  {
   document.write('<a href="ok.htm">OK</a>')
  }
  else
  {
   document.write('<a href="no.htm">NO</a>')
</SCRIPT>
Ma non mi funziona! :-((((((((((
Perchè?? Devo scrivere qualche cosa nell'head?
Devo definire is.nav5up ???
Non ci capisco una mazza.... :-)


 venire scritto SBAGLIATO.
if(document.all&&document.getElementById&&navigator.userAgent.indexOf("Opera
")==-1)
{// è IE5 o superiore}
else { ...}

 ha scritto nel
messaggio

Non funziona con Opera e Netscape (con IE6 si)
Help :-)


 Help :-)
Funziona perfettamente.
TUTTO SU UNA RIGA DA IF FINO ALLA PRIMA GRAFFA APERTA
if(document.all&&document.getElementById&&navigator.userAgent.indexOf("Opera
")==-1){
//quello che vuoi per ie5 o superiori
}else{
//quello che deve avvenire per gli altri
}
Ciao

 TUTTO SU UNA RIGA DA IF FINO ALLA PRIMA GRAFFA APERTA
Saresti cosě cortese da scrivermi tutto il javascript completo? :-)
Nell'head ci va scritto qualche cosa?
Grazie mille
Valentina

 Valentina
Questo va nel body della pagina dove devi mettere il link (mi raccomando non
spezzare la riga dell'if! Da "if(" fino a "-1)" deve essere su una sola
riga ).
<script>
if(document.all&&document.getElementById&&navigator.userAgent.indexOf("Opera
")==-1)
    var strHTML="<a href='link1.html'>FRASE 1</a>";
else
    var strHTML="<a href='link2.html'>FRASE 2</a>";
document.open("text/html");
document.write(strHTML);
document.close();
</script>
Ciao

 Devo definire is.nav5up ???
Appunto: da dove l'hai copiato?
Cerca il documento dove hai preso "is.nav5up" e vedrai che ti manca 
qualcosa, comunque penso che abbia a che fare con questo documento:
http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

> Saresti così cortese da scrivermi tutto il javascript completo? :-)
Ho provato:
<script type="text/javascript">
if (document.all&&document.getElementById&&navigator.userAgent.indexOf("Opera")==-1)
{document.write ('<a href="gatto.htm">GATTO</a>')}
else
{document.write ('<a href="cane.htm">CANE</a>')}
</script>
e sembra funzionare.
Funziona anche:
<script type="text/javascript">
if (navigator.userAgent.indexOf("Opera")==-1&&navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)>3)
{document.write ('<a href="gatto.htm">GATTO</a>')}
else
{document.write ('<a href="cane.htm">CANE</a>')}
</script>
Quello che mi chiedo è perché (almeno su ie6) non funziona:
<script type="text/javascript">
if (navigator.userAgent.indexOf("Opera")==-1&&navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)>4)
{document.write ('<a href="gatto.htm">GATTO</a>')}
else
{document.write ('<a href="cane.htm">CANE</a>')}
</script>
MaRoK

 </script>
Prova a visualizzare la navigator.appVersion. Ad esempio IE6 su win2000: 4.0
(compatible; MSIE 6.0; Windows NT 5.0)
Il parseInt restituisce ovviamente 4 e non soddisfa la tua condizione.
Ciao


Dunque procedendo in questo modo
non è possibile distinguere IE4 da IE5 o IE6,
e l'unica soluzione rimane quella proposta da te prima,
cioè document.all&&document.getElementById?
Ok, prendo nota! :o)
MaRoK


Possibile è possibile: basta prendere la stringa e cercare il primo numero
dopo "MSIE".
Ad ogni modo ritengo più veloce e sicuro il cosiddetto "object detection".
Nella condizione che ho scritto ho aggiunto anche il detect di Opera perché
quando fa finta di essere un altro browser (per default di installazione si
maschera da IE) fa finta di conoscere anche alcuni oggetti che poi in realtà
non è in grado di utilizzare.