Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    menu ke nn va su netscape/mozilla

    su questa pagina http://pro.html.it/articoli/id_313/i...pag_3/pag.html ci sta un modo per costruire un menu con i livelli...l'ho fatto e tutto funziona bene, tranne che su mozilla firefox non si vede una mazza del menu, ma intanto in quella pagina c'è scritto che per netscape bisogna mettere quel codice...io ho fatto così:

    codice:
    var quanti = 2; // Imposta il numero di menu e di sottomenu
    var i;
    
    // Il parametro "conta" serve per indicizzare i vai menu principali
    function Apri(conta)
    {
      if(document.all) // Identifichiamo Microsoft Internet Explorer
      {
        var elemento = event.toElement;
        var mostra = document.all.sottomenu[conta];
        var tabella =document.all.principale[conta];
           // Rende visibile il sottomenu relativo al menu principale al cui evento si scatena la routine
           mostra.style.visibility = "visible"; // Visualizza i sottomenu
           tabella.style.background="#FFFFFF";
             // Ciclando la variabile "i" che fa da contatore
             // possiamo identificare il sottomenu relativo al menu di appartenenza
             for (i=0; i<quanti; i++)
             {
               aperto = document.all.sottomenu[i];
               //menu = document.all.principale[i];
                // Se il mouse esce dall'area del sottomenu di appartenenza
                // per passare su un altro menu, chiudiamo il relativo sottomenu
                 if (i != conta)
                 {
                   aperto.style.visibility = "hidden";
                   document.all.principale[i].style.background="";
                 }
             }
       }
       
      if (document.layers)
      {
      tabella =document.all.principale[conta];
      mostra = document.layers[x+1];
      mostra.visibility = "show";
      mostra.top= 15;
      tabella.style.background="#FFFFFF"
        for (i=1; i<=quanti; i++)
        {
           aperto = document.layers[i];
             if (i != (x + 1))
             {
               aperto.visibility = "hide";
               document.all.principale[i].style.background="";
             }
        }
      }
    }
    // Con la stessa filosofia impostiamo lo stile "nascosto" sul sottomenu aperto
    function Chiudi()
    {
      for (i=0; i<quanti; i++)
      {
        if (document.all)
        {
          document.all.sottomenu[i].style.visibility = "hidden";
          document.all.principale[i].style.background="";
          //menu = document.all.principale[i];
         }
      }
      if (document.layers)
      {
       document.layers[i+1].visibility = "hide";
       document.all.principale[i].style.background="";
      }
    }
    dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quello script e` fatto per IE, con qualche apertura verso NN4 (ma ho dei dubbi che funzioni in NN4).
    Non puo` funzionare in NN6+ o altri browser moderni.

    Sarebbe tutto da rivedere alla luce del DOM.

    Fai meglio a cercare qualcosa di pou` recente.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    ma nn vedo ke cosa ci sia di sbagliato...xke devo usare cose ancora + complicate...sicuri ke nn si puo adattare in nessuna maniera?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Certo che si puo` adattare: basta riscriverlo.

    Tieni presente che dove trovi document.all devi sostituire con document.getElementById('ID_OGGETTO').
    Poi devi fare altre sostituzioni.

    Quello script e` stato fatto per i browser IE.
    Per farlo andare nei browser conformi al W3C devi usare gli oggetti del DOM, che in quello script non vengono usati.

    E` come passare dalla 500 della Fiat (quella vecchia di vent'anni fa) ad una vettura con accensione elettronica.
    Non puoi usare lo spinterogeno della 500 per una macchina moderna.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da Mich_
    Certo che si puo` adattare: basta riscriverlo.

    Tieni presente che dove trovi document.all devi sostituire con document.getElementById('ID_OGGETTO').
    Poi devi fare altre sostituzioni.

    Quello script e` stato fatto per i browser IE.
    Per farlo andare nei browser conformi al W3C devi usare gli oggetti del DOM, che in quello script non vengono usati.

    E` come passare dalla 500 della Fiat (quella vecchia di vent'anni fa) ad una vettura con accensione elettronica.
    Non puoi usare lo spinterogeno della 500 per una macchina moderna.
    ma una guida su come riscrivere i codici senza alterarne il funzionamento nn esiste?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da FinalFantasy
    ma una guida su come riscrivere i codici senza alterarne il funzionamento nn esiste?
    Non credo.

    Occorre studiare il DOM (vedi http://www.w3schools.com/htmldom/dom_reference.asp ), e conoscere il JS che si riferisce ad esso (vedi i tutorial in HTML.it ed i vari reference manual, tipo ttp://www.devguru.com/technologies/ecmascript/quickref/javascript_index.html ).

    Non e` poi tanto complesso. Ma occorre conscere un po' di cose, che evidentemente ti mancano.
    Per questo dicevo di cercare qualcosa di piu` moderno.
    Non e` una cosa piu` complessa che ti serve, ma una cosa che utilizzi gli oggetti disponibili nei browser e non gli oggetti proprietari che sono usati in quello script da te proposto
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    lo conoscevo già quel sito...

    con il tuo consiglio del getElementById lo conoscevo già, ma quello che nn sapevo (e ke mi hai detto tu) e che era troppo importante...ho fatto così

    codice:
    function Apri(conta)
    {
    
        /*var elemento = event.toElement;
        var mostra = document.getElementById('sottomenu'+conta); 
        var tabella =document.getElementById('principale'+conta);*/
    
           // Rende visibile il sottomenu relativo al menu principale al cui evento si scatena la routine
           document.getElementById('sottomenu'+conta).style.visibility="visible";
          // mostra.style.visibility = "visible"; // Visualizza i sottomenu
           document.getElementById('principale'+conta).style.background="#FFFFFF";
             // Ciclando la variabile "i" che fa da contatore
             // possiamo identificare il sottomenu relativo al menu di appartenenza
             for (i=0; i<quanti; i++)
             {
                // Se il mouse esce dall'area del sottomenu di appartenenza
                // per passare su un altro menu, chiudiamo il relativo sottomenu
                 if (i != conta)
                 {
                   document.getElementById('sottomenu'+i).style.visibility = "hidden";
                   document.getElementById('principale'+i).style.background="";
                 }
             }
       
    }
    e funzione con IE,Mozilla e Opera

    grazie per i tuoi consigli altrimenti nn sarei arrivato a questo risultato

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.