Notizie: scarica ora l'ultima versione disponibile di SeaMonkey!

Autore Topic: Reindirizzamento Jscript non riconosciuto  (Letto 2057 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline dcampiglia

  • Post: 3
Reindirizzamento Jscript non riconosciuto
« il: 08 Aprile 2005 17:20:14 »
Salve, ho un problema di reindirizzamento con Mozilla...
Molto probabilmente lo Script è errato ed è questo:
<SCRIPT>
<!--
var lang = document.all?navigator.userLanguage:navigator.language;
if (lang == "it")
   self.location="it/home.html";
   else if (lang == "en")
   self.location="en/home.html";
   else if (lang == "fr")
   self.location="de/home.html";
   else if (lang == "de")
   self.location="fr/home.html";
//-->
</SCRIPT>

Con IE reindirizza correttamente sulla lingua italiana, anche se non ho potuto verificare tutte le lingue, ho qualche dubbio sullo script...mentre con FF la pagina si blocca e non procede.
Qualcuno mi potrebbe aiutare?

Reb00t

  • Visitatore
Reindirizzamento Jscript non riconosciuto
« Risposta #1 il: 08 Aprile 2005 17:21:20 »
Intanto sposto nella sezione adatta ;)

Offline dcampiglia

  • Post: 3
Reindirizzamento Jscript non riconosciuto
« Risposta #2 il: 08 Aprile 2005 17:28:04 »
scusa sono nuovo... :shock:

Offline the fly on the net

  • Post: 297
    • the fly on the net
Re: Reindirizzamento Jscript non riconosciuto
« Risposta #3 il: 08 Aprile 2005 22:00:36 »
Citazione da: dcampiglia

<SCRIPT>
<!--
var lang = document.all?navigator.userLanguage:navigator.language;
if (lang == "it")
   self.location="it/home.html";
   else if (lang == "en")
   self.location="en/home.html";
   else if (lang == "fr")
   self.location="de/home.html";
   else if (lang == "de")
   self.location="fr/home.html";
//-->
</SCRIPT>


1.
navigator.language in firefox restituisce la stringa della lingua che imposti nelle opzioni di Firefox (o Mozilla)
Può facilmente capirtarti che la stringa sia "it", oppure "it-IT", oppure "it-CH", ecc...
Quindi di conviene valutare solo i 2 caratteri del codice ISO della nazione:

Codice: [Seleziona]
switch(lang.substring(0, 2).toLowerCase( ))
{
  case "it" :
    self.location="it/home.html";
  break;

  case "en" :
    self.location="en/home.html";
  break;
}


Nel mio esempio mi sono permesso di usare switch( ) al posto di un sacco di if in cascata, e di forzare la stringa in minuscolo (che non si sa mai...)

2.
Permettimi di inorridire :shock: a "document.all" usato come browser-sniffing.
Innanzitutto perché document.all è ora supportato da Firefox (genera un warning), ma soprattutto perché non ha mai avuto senso di esistere.

Il browser si determina con navigator.appName

Codice: [Seleziona]
var lang;
if(navigator.appName == "Microsoft Internet Explorer")
  lang = navigator.userLanguage;
else lang = navigator.language;


Ciao!

Offline dcampiglia

  • Post: 3
Reindirizzamento Jscript non riconosciuto
« Risposta #4 il: 08 Aprile 2005 22:40:10 »
Che tu sia benedetto...Stavo giust'appunto riprendendo il manuale (impolverato) di VB..e stavo giustappunto valutando la soluzione switch..Ma non ci sarei mai riuscito senza il tuo aiuto.
..Non ci speravo più, funziona alla grande, e il codice è pulitissimo, grazie.

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Reindirizzamento Jscript non riconosciuto
« Risposta #5 il: 09 Aprile 2005 02:00:12 »
Citazione da: flyonthenet

Permettimi di inorridire :shock: a "document.all" usato come browser-sniffing.
Innanzitutto perché document.all è ora supportato da Firefox (genera un warning), ma soprattutto perché non ha mai avuto senso di esistere.

Aggiungo solo che il supporto di Firefox a document.all è parziale, nel senso che lo supporta, ma se si fa il test con
Codice: [Seleziona]

if (document.all)

la condizione NON viene soddisfatta.
Ciao, Paolo

0 Utenti e 1 Visitatore stanno visualizzando questo topic.