Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101

    variabile da top frame a parent frame

    Ciao a tutti,

    praticamente ho un filmato di flash che chiama "lista.htm" passandogli una stringa.
    La pagina "lista.htm" contiene due frame,
    "menu.htm" e
    "principale.htm".

    Se catturo la stringa da lista.htm con

    var query = window.document.location.search.substring(1);
    var vars = query.split("&");

    Come riesco a scrivere immediatamente con document.write(vars);
    nella pagina figlia "principale.htm"?

    Ho fatto dei tentativi guardando nelle varie guide ma senza risultati.
    Qualcuno può aiutarmi?

  2. #2
    provato così?

    codice:
    top.nomeframeprincipale.window.document.write(vars);
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Si, ho provato, ma forse sbaglio da qualche altra parte?

    posto il codice di "lista.htm"
    codice:
    <html>
       <head>
          <title>Gestione dei frame con Javascript</title>
       </head>
    <script>
    
      var hs = "";
    
      var query = window.document.location.search.substring(1);
      var vars = query.split("&"); 
    
      var macs = vars[0].split("=");
      var nrig = vars[1].split("=");
      var ords = vars[2].split("="); 
    
      var macchina = macs[1];
      var nrighe = nrig[1];
      var orders = ords[1].split(";"); 
      var ncol = 5;
    
    
      hs += "<table border='1' width='100%' cellspacing='0'>";
      hs += "<tr><th>Qta'</th><th>Codice</th><th>Descrizione</th><th>Tavola</th><th>Riferimento</th></tr>";
    
      for (var i=0;i<nrighe;i++) {
    	hs += "<tr>";    
    
    	hs += "<td align='right'>" + orders[i*ncol] + "</td>"; 
    	hs += "<td align='left'>" + orders[i*ncol + 1] + "</td>"; 
    	hs += "<td align='left'>" + orders[i*ncol + 2] + "</td>"; 
    	hs += "<td align='center'>" + orders[i*ncol + 3] + "</td>"; 
    	hs += "<td align='right'>" + orders[i*ncol + 4] + "</td>"; 
    
    	hs += "</tr>";
      }  
      
      hs += "</table>";
    
      top.principale.window.document.write(hs);
    
    </script> 
    <frameset rows="*,80" border="0">
       <frame src="principale.htm" name="principale" noresize scrolling="no">
       <frame src="menu.htm" name="menu" noresize scrolling="no">
    </frameset>
    
    </html>
    forse devo scrivere qualcosa di particolare in "principale.htm?
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    
    </body>
    </html>

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Nessuno sa aiutarmi?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Lo script sembra corretto.

    C'e` una cosa che non mi piace, e sono i ; che dividono i campi dell'ultimo parametro. Forse un carattere diverso starebbe meglio. Un carattere moto usato per la separazione dei campi in una lista e` il | (barra verticale).

    Comunque ti consiglio di inserire degli alert, per vedere come procede lo spezzettamento della stringa:

    var macs = vars[0].split("=");
    var nrig = vars[1].split("=");
    var ords = vars[2].split("=");
    alert("test "+macs[1]+" "+nrig[1]+" "+ords[1]);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Ciao Mich_
    grazie per l'aiuto.

    Praticamente se stampo nella pagina che chiamo e passo le variabili con document.write(hs); tutto funziona.
    Il mio problema è che invio e ricevo le variabili con "lista.htm" che è un frameset e poi devo stampare queste variabili in un frame figlio,
    ed è questo che non funziona ossia
    top.principale.window.document.write(hs);

    Come faccio a stampare una stringa dalla pagina top alla pagina parent?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non puoi usare document.write() in una pagina gia` completa: cancelleresti completamente la pagina.

    per scrivere dentro un oggetto, esiste la proprieta` innerHTML.

    Esempio:

    top.principale.document.getElementById('ID_DEL_DIV ').innerHTML = hs;

    Dove la tua tabella andra` a sostituire completamente il contenuto di (ad esempio) un <div> che avrai nella pagina contenuta nel frame "principale":
    <div id="ID_DEL_DIV">
    ...
    </div>

    Nota: questo e` usabile solo dopo che la pagina e` stata caricata completamente, quindi il tuo script andra` messo in una funzione.

    Se invece devi creare la pagina da zero, allora va bene il document.write, ma in tal caso devi iniziare a scrivere a partire dal tag <html>, poi <head> ... </head><body> ...
    e finire con </body></html>
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Grazie Mich, ora faccio delle prove.

    Se metto tutto in una funzione dato che mi trovo nella top per avviare la funzione come potrei fare?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io penso che potresti mettere un onload nella pagina in cui deve aprirsi la tabella:

    <body onload="top.NOMEFUNZ();">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Ok, faccio delle prove
    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.