Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [DHTML] script incompatibile con Opera?

    tempo addietro ho trovato questo script fra quelli ideati da html.it
    si tatta di un menu espandibile in verticale molto semplice da gestire e quindi particolarmente interessante.
    l'unico neo è che non funziona assolutamente con Opera.
    Non è che qualcuno è in grado di indicarmi come:
    -modificarlo in modo che funzioni anche con Opera;
    -modificarlo in modo che almeno siano accessibili i contenuti anche con Opera (ad esempio mostrando i menu già espansi).


    lo script in questione è questo:

    <script type="text/javascript">

    if (document.getElementById){
    document.write('<style type="text/css">\n')
    document.write('.submenu{display: none;}\n')
    document.write('</style>\n')
    }

    function SwitchMenu(obj){
    if(document.getElementById){
    var el = document.getElementById(obj);
    var ar = document.getElementById("masterdiv").getElementsBy TagName("span");
    if(el.style.display != "block"){
    for (var i=0; i<ar.length; i++){
    if (ar[i].className=="submenu")
    ar[i].style.display = "none";
    }
    el.style.display = "block";
    }else{
    el.style.display = "none";
    }
    }
    }

    </script>


    Il modo in cui viene utilizzato nella pagina è questo:


    <div class="menutitle" onclick="SwitchMenu('sub1')">DIRECTORY_MADRE</div>
    <span class="submenu" id="sub1">
    - Directory_figlia1

    - Directory_figlia2
    </span>



    grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ciao, con quale versione di opera stai provando?
    a me con la 7.0 funziona

  3. #3
    Originariamente inviato da Xinod
    ciao, con quale versione di opera stai provando?
    a me con la 7.0 funziona
    con la 6.0. Si vedono solo i div menutitle e il resto è come se non esistesse.
    cmq, se la 7 funziona già questo, per le questioni pratiche potrebbe essere sufficiente.
    ma, per garantire un po' di retrocompatibilità (al fine unicamente di rendere accessibili i contenuti, senza alcuna pretesa di dinamicità) che modifiche occorrerebbe fare?

    da praticante a-teorico di javascript mi viene da pensare che intervenendo sul primo if (quello che imposta il display:none) si dovrebbe poter arrivare a qualche risultato. Ma come farlo senza compromettere il funzionamento su IE e NS?

    ciao

  4. #4

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    newBrwSniff=((document.getElementById && !window.opera) || (window.opera && parseInt(navigator.userAgent.substr(navigator.userAgent.lastIndexOf('Opera ')+6))>=7))?1:0;
    
    if(newBrwSniff){ 
    document.write('<style type="text/css">\n') 
    document.write('.submenu{display: none;}\n') 
    document.write('</style>\n') 
    } 
    
    function SwitchMenu(obj){ 
    if(newBrwSniff){ 
    var el = document.getElementById(obj); 
    var ar = document.getElementById("masterdiv").getElementsByTagName("span"); 
    if(el.style.display != "block"){ 
    for (var i=0; i<ar.length; i++){ 
    if (ar[i].className=="submenu") 
    ar[i].style.display = "none"; 
    } 
    el.style.display = "block"; 
    }else{ 
    el.style.display = "none"; 
    } 
    } 
    }
    prova,
    ciao

  6. #6
    :metallica vadaddio!! :metallica

    grazie mille!!

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.