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

    Eseguire javascript da 2 frame diversi

    Ciao a tutti,

    per farla breve vi indico subito il mio pezzo di codice:
    codice:
    <script language="javascript">
    function Mostra(id) {
    	for (i=1; i<6; i++) { 
    		if (i==id){
    		document.getElementById(i).style.display = "";
    		}else{
    		document.getElementById(i).style.display = "none";
    		}
    	}
    }
    </script> 
    
    <div id="1" style="display:none; position: absolute;  top: 100px;
     left: 100px;">1</div>
    <div id="2" style="display:none; position: absolute;  top: 100px;
     left: 100px;">2</div>
    <div id="3" style="display:none; position: absolute;  top: 100px;
     left: 100px;">3</div>
    <div id="4" style="display:none; position: absolute;  top: 100px;
     left: 100px;">4</div>
    <div id="5" style="display:none; position: absolute;  top: 100px;
     left: 100px;">5</div>
    
    <input type="button" value="clicca" onclick="Mostra('1');"> 
    <input type="button" value="clicca" onclick="Mostra('2');"> 
    <input type="button" value="clicca" onclick="Mostra('3');"> 
    <input type="button" value="clicca" onclick="Mostra('4');"> 
    <input type="button" value="clicca" onclick="Mostra('5');">


    Per semplicità di spiegazione ho 5 div nascosti, e tramite pulsanti, faccio apparire il div che mi interessa, facendo sparire gli altri.


    Se io volessi comandare l'apertura e la chiusura di questi div, da un frame laterale è possibile?

    Grazie
    PIERCHI

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Lasciando la funzione (Mostra) nel documento principale potresti richiamarla cosi onclick="top.Mostra('1')" negli iframe, sempre che gli iframe facciano parte dello stesso dominio, non di un dominio esterno
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ah, faccio già una cosa del genere in altre pagine tipo il submit di un modulo da un frame..

    adesso provo e faccio sapere!
    PIERCHI

  4. #4
    Funziona più che perfettamente...
    è ottimo!
    PIERCHI

  5. #5
    continuo nello stesso thread...


    alcune informazioni:

    - se per esempio l'id del div non è solo numerico, ma davanti al numero ha per esempio la "a" (a1, a2, a3), posso ovviare al problema facendo così:
    codice:
    document.getElementById('a'.i).style.display = "";
    giusto?


    - Non avendo dei numeri sequenziali, il ciclo for, quando non trova il div corrispondente, mi restituisce l'errore che manca l'oggetto.
    Come posso mettere un if (prima dell'azione) per far verificare se il div corrispondente al numero del for esiste?

    grazie
    PIERCHI

  6. #6
    dimenticavo, la pagina con i vari div viene creata da php, per questo non sempre posso avere i numeri sequenziali...
    PIERCHI

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che usare id numerici è sconsigliato non tutti i browser li riconoscono meglio usare id="_1", id="_2" oppure una radice NomeFissoNumeroSequenziale div1, div2, etc... per quanto concerne la sequenzialità se ricrei sia i div con il php che id che passi
    <div id="oggetto<? echo 'contatorephp'; ?>" style="display:none; position: absolute; top: 100px;
    left: 100px;">1</div>
    <input type="button" value="clicca" onclick="Mostra('oggetto<? echo 'contatorephp'; ?>');">
    la funzione la modifichi cosi:
    codice:
    <script language="javascript">
    function Mostra(id) {
    // se vuoi circoscrivere aggiungi un div contenitore 
    //var oggetti = document.getElementById('contenitore').getElementsByTagName("div")
    var oggetti = document.getElementsByTagName("div")
    	for (i=1; i<oggetti.length; i++) { 
    		if (oggetti[i].id==id){
    		oggetti[i].style.display = "";
    		}else{
    		oggetti[i].style.display = "none";
    		}
    	}
    }
    </script>
    devi contare i div presenti, ne caso tu voglia circoscrivere i div usa un div contenitore
    <div id="contenitore"><div></div><div></div></div>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    grazie, provo
    PIERCHI

  9. #9
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Originariamente inviato da pierchi
    codice:
    document.getElementById('a'.i).style.display = "";
    giusto?
    No.
    + non .

  10. #10
    perfetto, ho risolto tutto. Funziona tutto veramente bene ora.

    Grazie mille a tutti-
    PIERCHI

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.