Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [JS] Far Aprire Due Pagine in Due Frame Con Un Solo Click

    Ciao a tutti, ho trovato questa funzione che permette di far aprire due pagine in due frames differenti all'interno del sito, tramite un solo click del mouse.

    codice:
    <!-- 
      function loadtwo(page2, page3) {
         parent.leftFrame.location.href=page2;
         parent.topFrame1.location.href=page3;
    }
    // -->

    Sono riuscito ad utilizzarla senza problemi se il lnik è presente all'interno della pagina che contiene questi frame. Vorrei da voi sapere come posso fare se invece il link si trova su una pagina diversa che non utilizza frame, a permettere di caricare la pagina che ha i frame interessati, però non con le pagine base dei frame ma con le due che indico tramite link?

    Spero di essermi spiegato +o- comprensibilmente.

    Grazie a tutti.
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se un link da un altro documento deve aprire un frameset con specifiche pagine al suo interno in qualche modo devi passare gli url delle pagine da aprire nell' indirizzo con cui punti al frameset,
    http://www.miosito.it/frameset.htm?f...zzopagina2.htm
    e non e' certo il massimo...

    qui hai un esempio per un solo frame
    http://javascript.internet.com/navig...-frameset.html
    che non dovrebbe risultarti difficile sistemare per 2

    qui qualche funzione per l' analisi della querystring
    http://forum.html.it/forum/showthrea...hreadid=346468

    se puoi usare linguaggi lato server puoi semplificarti un minimo la cosa

    ciao

  3. #3
    Originariamente inviato da Xinod
    se un link da un altro documento deve aprire un frameset con specifiche pagine al suo interno in qualche modo devi passare gli url delle pagine da aprire nell' indirizzo con cui punti al frameset,
    http://www.miosito.it/frameset.htm?f...zzopagina2.htm
    e non e' certo il massimo...

    qui hai un esempio per un solo frame
    http://javascript.internet.com/navig...-frameset.html
    che non dovrebbe risultarti difficile sistemare per 2

    qui qualche funzione per l' analisi della querystring
    http://forum.html.it/forum/showthrea...hreadid=346468

    se puoi usare linguaggi lato server puoi semplificarti un minimo la cosa

    ciao
    Grazie dei consigli, ci ho messo un pò ma per ora ho scritto questo:

    codice:
    <script language="javascript">
    	parmarr = new Array;
            valuearr = new Array;
            function readparms()
            {
               if(location.search!='')
              { 
                 Args = location.search.substring(1); 
                 parmarr = Args.split('&');
                 for(i=0;i<parmarr.length;i++)
                 {
                    valuearr[i] = parmarr[i].split('='); 
                 }
              } 
           }
    	function showparms()
           { 
              if(location.search!='')
              { 
                 for(i=0;i<valuearr.length;i++)
                 {
                    if(valuearr[i][1]==1){
    			document.write(valuearr[i][0] +'=' +valuearr[i][1] +'
    '); 
    			if(valuearr[i][1]==1){ document.write("ciao");
    			parent.leftFrame.location.href=menu_eng.html;
         		parent.topFrame1.location.href=aboutus.html;
    			}
    			}
                 }
             } 
          } 
    window.onload=readparms();
    window.onload=showparms();
    </script>
    Il problema è che questa funzione legge il parametro ed effettua il controllo, l'ho verificato rimuovendo:

    codice:
    parent.leftFrame.location.href=menu_eng.html;
    parent.topFrame1.location.href=aboutus.html;
    Ma proprio queste ultime due righe non fanno ciò che dovrebbero, ovvero caricare i contenuti giusti dei fram, anche se in un file esterno in cui c'è una funzione che le utilizza, le stesse funzionano. Come posso rendere questa cosa in modo funzionale?

    Grazie
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  4. #4
    Nessuno mi sa dare una mano per risolvere questo ultimo passo?
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non puoi usare document.write all'interno di una funzione... nel momento in cui viene eseguita sovrascrive l'intero documento, javascript compresi

    Prova eliminando la riga:
    if(valuearr[i][1]==1){ document.write("ciao");

    o almeno sostituendo document.write() con un semplice alert()

    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

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se sono stringhe, e un indirizzo lo e', vanno delimitati da apici o doppi apici
    Originariamente inviato da Skull260287
    codice:
    parent.leftFrame.location.href='menu_eng.html';
    parent.topFrame1.location.href="aboutus.html";
    altrimenti
    parent.leftFrame.location.href=valuearr[i][1];

    poi hai due onload, il secondo sovrascrive il primo
    e comunque non ti servono due funzioni, sicuramente non richiamate cosi'

    comunque dici che il problema e' nel riferirsi ai 2 frame
    secondo me la sintassi e' corretta, a meno che il tutto non si trovi in un frame annidato in un altro frame

    questo perche'
    - se lo script si trova nel frameset il parent e' il frameset stesso
    - se lo script si trova in un frame il parent e' il frameset
    in entrambi i casi il riferimento ai 2 frame sarebbe corretto

    se hai ancora problemi spiega un po' meglio la situazione

  7. #7
    Originariamente inviato da br1
    Non puoi usare document.write all'interno di una funzione... nel momento in cui viene eseguita sovrascrive l'intero documento, javascript compresi

    Prova eliminando la riga:
    if(valuearr[i][1]==1){ document.write("ciao");

    o almeno sostituendo document.write() con un semplice alert()

    ciao
    Ho rimosso definitivamente, quella parte di codice era solo per prova, il codice allo stato attuale è:

    codice:
    if(valuearr[i][1]==1){
    		parent.leftFrame.location.href='menu_eng.html';
         		parent.topFrame1.location.href='aboutus.html';
    			}
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  8. #8
    Originariamente inviato da Xinod
    se sono stringhe, e un indirizzo lo e', vanno delimitati da apici o doppi apici

    altrimenti
    parent.leftFrame.location.href=valuearr[i][1];

    poi hai due onload, il secondo sovrascrive il primo
    e comunque non ti servono due funzioni, sicuramente non richiamate cosi'

    comunque dici che il problema e' nel riferirsi ai 2 frame
    secondo me la sintassi e' corretta, a meno che il tutto non si trovi in un frame annidato in un altro frame

    questo perche'
    - se lo script si trova nel frameset il parent e' il frameset stesso
    - se lo script si trova in un frame il parent e' il frameset
    in entrambi i casi il riferimento ai 2 frame sarebbe corretto

    se hai ancora problemi spiega un po' meglio la situazione
    Ciao, grazie dell'aiuto che mi stai dando. Il codice javascript l'ho inserito nella pagina che contiene il codice per delimitare i vari frame, ovvero la pagina principale. Nonostante avessi messo i doppi apici non cambia molto, come posso utilizzare questo codice, o uno simile per ottenere quello che dovrei. Quello che mi hai proposto qualche risposta fa è un buon codice però mi costringerebbe a modificare la gestione del menù per la visualizzazione dei contenuti dei frame.
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  9. #9
    Originariamente inviato da Skull260287
    Ciao, grazie dell'aiuto che mi stai dando. Il codice javascript l'ho inserito nella pagina che contiene il codice per delimitare i vari frame, ovvero la pagina principale. Nonostante avessi messo i doppi apici non cambia molto, come posso utilizzare questo codice, o uno simile per ottenere quello che dovrei. Quello che mi hai proposto qualche risposta fa è un buon codice però mi costringerebbe a modificare la gestione del menù per la visualizzazione dei contenuti dei frame.
    Qualcuno si è già trovato in questa situazione e conosce una soluzione?

    Grazie a tutti
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    parti da una cosa del genere
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>frameset</title>
    <script type="text/javascript">
    /*<![CDATA[*/
    window.onload=function(){
    	var qs=self.location.search;
    	if(qs){
    		qs=qs.substring(1).split('&');
    		for(var k=0;k<qs.length;k++){
    			var vQs=qs[k].split('=');
    			if(vQs[0]=='fr1') document.getElementById('frame1').contentWindow.location.replace(vQs[1]);
    			if(vQs[0]=='fr2') document.getElementById('frame2').contentWindow.location.replace(vQs[1]);
    		}
    	}
    }
    /*]]>*/
    </script>
    </head>
    <frameset rows="33%,*">
    	<frame id="frame1" src="sopra.htm" />
    	<frame id="frame2" src="sotto.htm" />
    </frameset>
    </html>
    richiamato da un link del genere
    codice:
    frameset
    ciao

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.