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

    Problemi con funzione in file esterno

    Salve a tutti e bentrovati, sono nuovo dal forum, ho letto le faq e gran parte delle guide sul JavaScript presenti su html.it e tuttavia non sono riuscito a chiarire alcuni dubbi che vi propongo, subito dopo avervi spiegato a cosa sto lavorando:

    Ho suddiviso la pagina in tre div principali. Il primo e' a sinistra, un menu generale per tutto il sito, il secondo (chiamiamolo CENTRALE) e' un frame dove verra' visualizzata la parte "corposa" della pagina e il terzo (ed e' quello che mi da problemi, e che chiamero' INFERIORE) e' un secondo menu, regolato in una tabella e collegato esclusivamente al secondo div.

    Nell'INFERIORE dovrebbero esserci delle immagini che, una volta cliccate, caricano nel CENTRALE una determinata pagina. Oltre a caricare la suddetta pagina, voglio che le immagini dell'INFERIORE cambino a seconda di quale pagina e' selezionata. Faccio un esempio pratico:

    clicco sull'immagine 1, mi appare l'immagine img1ON e nel CENTRALE si carica la pagina pagina1.html
    clicco sull'immagine 2, mi appare l'immagine img2ON, l'immagine img1ON cambia con l'immagine img1OFF e nel CENTRALE si carica la pagina pagina2.html

    ecc ecc

    Purtroppo l'ora e' quella che e', quindi se la mia spiegazione non e' chiara riprovero' a riformularla domattina. Avevo fatto una funzione esterna con passaggio di argomenti, ma non riesco a farla funzionare. Copio il codice per farvi capire cosa avevo pensato di fare.


    //il file dovrebbe essere esterno, visto che verrebbe richiamato parecchie volte
    //il tag <table> si apre e si chiude fuori dalla funzione

    //la variabile vox indica quale voce e' stata scelta (se e' stata cliccata la prima, la seconda, la terza o l'ennesima immagine)
    //la variabile numenu indica il numero di voci del menu, che sono variabili (in alcune pagine solo due, in altre fino a 4, motivo per cui ho preferito fare la funzione cosi' "generica")

    function javamenu(vox,numenu)
    {
    document.write("<td>");
    c=1;
    do{
    document.write("<tr>");
    if(vox == c)
    {
    document.write("<a href=\"pagina"+c+".html\" target=\"central\"><img src=\"pagina"+c+"on.GIF\"></a>")
    }
    else
    {
    document.write("<a href=\"pagina"+c+".html\" target=\"central\"><img src=\"pagina"+c+"off.GIF\"></a>")
    }
    document.write("</tr>");
    c++;
    }
    while(c<numenu);
    document.write("</td>");
    return();
    }

    So bene che, essendo la prima stesura del codice, fa acqua da tutte le parti, e non so ancora se ho mischiato java e c... Per questo vi chiedo il vostro aiuto.

    1) qual'e' la sintassi corretta per richiamare una funzione da un file esterno? Cosa va messo nel head e cosa nel body?
    2) come faccio a dire che mi deve caricare il java esattamente in quel div?
    3) come faccio a rendere ricorsiva la funzione, in maniera tale che il cambio di immagini del menu avvenga senza problemi?


    Grazie in anticipo per le gentili risposte

    -Lorenzo

  2. #2

    Re: Problemi con funzione in file esterno

    Originariamente inviato da lorenzos87
    ...

    So bene che, essendo la prima stesura del codice, fa acqua da tutte le parti, e non so ancora se ho mischiato java e c... Per questo vi chiedo il vostro aiuto.

    1) qual'e' la sintassi corretta per richiamare una funzione da un file esterno? Cosa va messo nel head e cosa nel body?
    <head>
    <SCRIPT Language=Javascript src="nomefile.js"></SCRIPT>
    ...
    </head>

    così richiami tutto il contenuto del file nomefile.js il quale conterrà tutte le tue funzioni
    che utilizzerai nella tua pagina html

    2) come faccio a dire che mi deve caricare il java esattamente in quel div?
    tu non devi caricare il codice javascript in quel div, ma devi solo caricarci la tua pagina,
    quindi se fai document.getElementById("IddelDIV").innerHTML = "pagina.html"
    vai a cambiare il contenuto di quel preciso oggetto, che sarà costruito come:

    <div id="IddelDIV"> ... </div>

    per variare il nome visualizzato nel menu INFERIORE puoi procedere allo stesso modo.

    3) come faccio a rendere ricorsiva la funzione, in maniera tale che il cambio di immagini del menu avvenga senza problemi?
    non ti serve una funzione ricorsiva!
    ti serve una funzione che all'onclick di una immagine del tuo menu inferiore faccia quello
    che deve fare.
    quindi
    primaimmagine
    ...
    ultimaimmagine

    passando come parametro prima, seconda ... sai sempre quale è stata cliccata
    e quindi quale porre ad ON

    Grazie in anticipo per le gentili risposte

    -Lorenzo
    Ciao

  3. #3

    Re: Re: Problemi con funzione in file esterno

    Originariamente inviato da TommyGun
    <head>
    <SCRIPT Language=Javascript src="nomefile.js"></SCRIPT>
    ...
    </head>

    così richiami tutto il contenuto del file nomefile.js il quale conterrà tutte le tue funzioni
    che utilizzerai nella tua pagina html
    Apposto, almeno questo l'avevo fatto bene


    Originariamente inviato da TommyGun
    tu non devi caricare il codice javascript in quel div, ma devi solo caricarci la tua pagina,
    quindi se fai document.getElementById("IddelDIV").innerHTML = "pagina.html"
    vai a cambiare il contenuto di quel preciso oggetto, che sarà costruito come:

    <div id="IddelDIV"> ... </div>

    per variare il nome visualizzato nel menu INFERIORE puoi procedere allo stesso modo.
    Ho quasi capito, prendo un attimo confidenza con document.getElementBy e dovrei aver risolto.


    Originariamente inviato da TommyGun
    non ti serve una funzione ricorsiva!
    ti serve una funzione che all'onclick di una immagine del tuo menu inferiore faccia quello
    che deve fare.
    quindi
    primaimmagine
    ...
    ultimaimmagine

    passando come parametro prima, seconda ... sai sempre quale è stata cliccata
    e quindi quale porre ad ON
    Si ma oltre a cambiare la propria immagine, deve anche cambiare l'immagine selezionata in precedenza... E' questo che mi da problemi, altrimenti avrei risolto già da un pezzo

    Un'altra domanda, e' giusta l'intestazione della funzione con i due parametri? Ovvero "nomefunzione(variabile,variabile)? E nel body per attivare una funzione con variabili faccio "nomefunzione(valore,valore)"?

    Grazie di nuovo per le eventuali risposte

  4. #4

    Re: Re: Re: Problemi con funzione in file esterno

    Originariamente inviato da lorenzos87
    Apposto, almeno questo l'avevo fatto bene

    Ho quasi capito, prendo un attimo confidenza con document.getElementBy e dovrei aver risolto.


    Si ma oltre a cambiare la propria immagine, deve anche cambiare l'immagine selezionata in precedenza... E' questo che mi da problemi, altrimenti avrei risolto già da un pezzo
    pensavo fosse sottointeso...
    cmq devi fare lo stesso anche per l'immagine da riportare ad OFF.

    Un'altra domanda, e' giusta l'intestazione della funzione con i due parametri? Ovvero "nomefunzione(variabile,variabile)? E nel body per attivare una funzione con variabili faccio "nomefunzione(valore,valore)"?

    Grazie di nuovo per le eventuali risposte
    si è giusto ma non ti serve se hai solo una immagine nello stato ON quindi
    tutte le altre saranno OFF, questo te lo gestirai dentro la tua funzione js.


  5. #5

    Perdono...

    ...ma non sono riuscito a farlo malgrado la buona volonta'...

    Copio qui il link della pagina d'esempio... Perdonate l'effetto "ape maia", il bg e' solo una prova momentanea, mentre il contenuto delle pagine e' preso dalla mia tesina dell'anno scorso

    http://www.elvellon.altervista.org/Sito/pagina.html

    Nel riquadro in basso dovrebbe apparire il menu, che ovviamente non mi appare... So bene che ci sara' qualche niubberrore, e chiedo scusa in anticipo, ma sinceramente non so dove mettere le mani, se qualche buon'anima mi da una mano glie ne saro' eternamente grato...


    -Lorenzo

    [add] Per ora il menu dovrebbe solo apparire, non ho ancora implementato la parte onclick... Ma se gia' mi apparisse sarebbe una grande cosa...

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.