Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    sniffing del browser che separi IE5.x da IE6

    Esiste un JS che sniffi dividendo Internet Explorer 5.0 e 5.5 dal 6.0? Ho cercato in lungo e in largo, anche su pro.html.it oltre che sul forum, ma non l'ho trovato. Anche l'articolo "CSS CROSSBROWSER" di Cesare Lamanna non fa al caso mio, poichè divide il solo IE4 da tutti gli altri, che restano insieme. Avendo fatto un sito aderente agli standard (tanto è vero che è visualizzato da Mozilla 1.6, Opera 7.23 e IE6 allo stesso modo), avrei bisogno di caricare un css differente x gli Explorer serie 5, che non supportano i fogli di stile benissimo...

    Qualcuno mi aiuta?

    _YD

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    709
    Quello che ti occorre sono gli attributi "appName" e "appVersion" dell'oggetto "navigator":
    codice:
    browser_name = navigator.appName();
    browser_version = navigator.appVersion;
    
    if (browser_name.indexOf('Explorer') > 0) { // Se il browser è MSIE...
      switch (browser_version) {
        case '5.0'
          // codice da eseguire
          break;
        case '5.5'
          // codice da eseguire
          break;
        case '6.0'
          // codice da eseguire
          break;
        case else
          // codice da eseguire
          break;
      }
    } else {
      // Codice da eseguire se il browser non è MSIE
    }

  3. #3
    Grazie mille

    Se ti è possibile, mi puoi dire come "unire" due condizioni? Non ho ancora testato IE5.5 e dunque non so se si comporta come il 5.0 o come il 6.0, ma in entrambi i casi dovrei assegnargli lo stesso comportamento di uno dei due... potrei caricare due volte la stessa istruzione, ma amo il codice "pulito" e dunque se potessi dirmi come fare ti sarei davvero grato.

    _YD

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    codice:
      switch (browser_version) {
        case '5.0':
          // codice da eseguire
          break;
        case '5.5':
        case '6.0':
          // codice da eseguire
          break;
        default:
          // codice da eseguire
          break;
      }
    Attenzione che ci vogliono i duepunti (e non esiste il case else, ma si usa default).

    Nota che alla fine di ogni struttura legata ad una condizione ci deve stare il break;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    709
    Ooops! Grazie Mich_. avevo fatto un po' di macello tra i vari linguaggi di scripting...

    Per quanto riguarda l'unione di più condizioni, si usano gli operatori AND (&&) e OR (||) - nel tuo caso serve l'oeratore OR:

    codice:
    switch (browser_version) {
        case '5.0' || '5.5':        //se la versione è 5.0 OPPURE 5.5
          // codice da eseguire
          break;
        case '6.0':               //se la versione è 6.0
          // codice da eseguire
          break;
        default:                  //in tutti gli altri casi (ver < 5.0)
          // codice da eseguire
          break;
      }

  6. #6
    Grazie a entrambi!

    Appena ho tempo provo il tutto e se ho problemi ri-posto.



    _YD

  7. #7
    codice:
    <script type="text/javascript"><!--
    browser_name = navigator.appName();
    browser_version = navigator.appVersion;
    if (browser_name.indexOf('Explorer') > 0) { // Se il browser è MSIE...
    switch (browser_version) {
        case '5.0' || '5.5':        //se la versione è 5.0 OPPURE 5.5
          document.write('Explorer 5x')
          break;
        case '6.0':               //se la versione è 6.0
          document.write('Explorer 6')
          break;
        default:                  //in tutti gli altri casi (ver < 5.0)
          document.write('Explorer + vecchio di 5x')
          break;
      }
    //--></script>
    ho provato a inserire nel body questo codice ma non scrive nulla...
    dov'è il mio errore?

    _YD

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prova a verificare cosa legge il browser da quelle proprieta`:

    codice:
    browser_name = navigator.appName();
    browser_version = navigator.appVersion;
    if (browser_name.indexOf('Explorer') > 0) { // Se il browser è MSIE...
      alert("ho letto versione: '"+browser_version+"'");
      switch (browser_version) {
        case '5.0':
        case '5.5':               //se la versione è 5.0 OPPURE 5.5
          document.write('Explorer 5x')
          break;
        case '6.0':               //se la versione è 6.0
          document.write('Explorer 6')
          break;
        default:                  //in tutti gli altri casi (ver < 5.0)
          document.write('Explorer + vecchio di 5x')
          break;
      }
    Mettendo due condizioni una dopo l'altra fa automaticamente l'OR fra le due
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Proprietà o metodo non supportati dall'oggetto.

    (nel codice mancava la seconda graffa, l'ho aggiunta io; il problema sovraesposto resta...)

    _YD

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    togli le tonde dopo appName
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.