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

    Per voi sarà semplice... javascript e frame!

    Ecco un altro modo per dimostrare la mia inettitudine.
    Io trovo gli script in rete e poi ho l'ardire di adattarli alle mie esigenze, sebbene ne capisca poco. Ma sono sicuro che molti di voi hanno la risposta che cerco
    Il seguente codice genera un menu a tendina che prevede due livelli d'interazione: prima si fa una scelta ---> il menu cambia dinamicamente ---> si fa un'altra scelta ---> si viene trasportati al sito scelto.
    codice:
    <BODY>
    <form name="dynamiccombo">
    <select name="stage2" size="1" onChange="displaysub()">
    <option value="#">Testo di riempimento</option>
    <option value="#">Testo di riempimento</option>
    <option value="#">Testo di riempimento</option>
    </select>
    <input type="button" name="test" value="Visita il sito!"
    onClick="gothere()">
    </form>
    
    <script>
    //1: Qui si definiscono i link per le categorie principali
    //Inserire altri elementi nell'array per creare altre voci
    //La prima riga contiene il testo visualizzato come primo elemento
    
    var category=new Array()
    category[0]=new Option("Seleziona una categoria ","") 
    category[1]=new Option("Prima scelta", "combo1")
    category[2]=new Option("Seconda scelta", "combo2")
    category[3]=new Option("Terza scelta", "combo3")
    
    //2: Qui si definiscono i link per le sottocategorie
    //Inserire altri elementi nell'array per creare altre voci
    //L'ultima riga dovrebbe contenere il testo per far tornare l'utente alle categorie principali
    
    var combo1=new Array()
    combo1[0]=new Option("Sito 1-a","http://www.sito1-a.it")
    combo1[1]=new Option("Sito 1-b","http://www.sito1-b.it")
    combo1[2]=new Option("TORNA ALLE CATEGORIE PRINCIPALI","")
    
    var combo2=new Array()
    combo2[0]=new Option("Sito 2-a","http://www.sito1-a.it")
    combo2[1]=new Option("Sito 2-b","http://www.sito1-a.it")
    combo2[2]=new Option("Sito 2-c","http://www.sito1-a.it")
    combo2[3]=new Option("TORNA ALLE CATEGORIE PRINCIPALI","")
    
    var combo3=new Array()
    combo3[0]=new Option("Sito 3-a","http://www.sito1-a.it")
    combo3[1]=new Option("Sito 3-b","http://www.sito1-a.it")
    combo3[2]=new Option("TORNA ALLE CATEGORIE PRINCIPALI","")
    
    var curlevel=1
    var cacheobj=document.dynamiccombo.stage2
    
    function populate(x){
    for (m=cacheobj.options.length-1;m>0;m--)
    cacheobj.options[m]=null
    selectedarray=eval(x)
    for (i=0;i<selectedarray.length;i++)
    cacheobj.options[i]=new Option(selectedarray[i].text,selectedarray[i].value)
    cacheobj.options[0].selected=true
    
    }
    
    function displaysub(){
    if (curlevel==1){
    populate(cacheobj.options[cacheobj.selectedIndex].value)
    curlevel=2
    }
    else
    gothere()
    }
    
    
    function gothere(){
    if (curlevel==2){
    if (cacheobj.selectedIndex==cacheobj.options.length-1){
    curlevel=1
    populate(category)
    }
    else
    location=cacheobj.options[cacheobj.selectedIndex].value
    }
    }
    populate(category)
    </script>
    Adesso, la mia esigenza è la seguente: voglio che il sito scelto non si apra nello stesso frame nel quale ho messo il menu, ma in un altro chiamato "MainWindow".
    Cosa devo andare a modificare??

    Grazie tante per l'aiuto prezioso!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Devi specificare il percorso per arrivare al frame interessato:

    top.nomeFrame.location.href=cacheobj.options[cacheobj.selectedIndex].value

    Se esistono piu' frameset innestati possono esserci diverse alternative... con l'uso di parent (il frame che contiene quello corrente) o esplicitando il percorso completo.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Sei un grande!
    Grazie mille, funzia

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.