Newsgroup: it.comp.lang.javascript
Titolo: Quesito più difficile





Ciao a tutti,


stavolta il quesito è più complesso ( e soprattutto 
se allego anche i codici più lungo assai!!)


Ho creato codice javascript che mi permette di 
cambiare il colore di sfondo della pagina selezionando un colore tra 9 possibili 
mostrati a schermo.


Poiche poi serve come indice per aprirne un'altra 
ad un dato punto, ho fatto in modo che anche la pagina figlia, quando viene 
aperta, abbia lo stesso colore di quella madre.


Tutto funziona ma appena provo ad inserire le due 
pagine in un frame set, tutto smette di funzionare, o meglio, la pagina madre 
continua a cambiare colore, ma la pagina figlia non più.


Qui di seguito vi riporto il codice html delle tre 
pagine.


Grazie per l'aiuto


filippo


 


PS: con lo stesso metodo è possibile anche cambiare 
il colore del testo,ma solo se esso non è contenuto in altri oggetti, come ad 
esempio una cella. Esiste un comando da far antecedere a document.fgColor  
di modo da colorare tutto il testo contenuto nella pagina?


Ho trovato una soluzione che usa i 
css ma vorrei farne a meno.


 


PAGINA MADRE(EquadorTop.htm).


 


QUESTA PARTE DEFINISCE UNA SERIE DI RADIO BUTTONS 
CHE HANNO COME VALORI I 9 COLORI DISPONIBILI


CON UN COMANDO ONCLICK RICHIAMO LA FUNZIONE SEL() 
CHE APPLICA IL COLORE CONTENUTO NEL VALORE DEL RADIO BUTTON SELEZIONATO ALLO 
SFONDO


<script 
language="JavaScript">
<!--


function sel(numero)   
{
 document.bgColor=colore1.sfondo[numero].value
  }


 


//-->


</script>
</head><body 
bgcolor="#999999">
<table width="756" border="0">
  
<tr> 
    <td width="225"> 

      <div align="center"><form 
name="colore1">
 <div align="left">
 <table 
border="1" cellspacing="1" cellpadding="0" bordercolorlight="#FFFFFF" 
bordercolordark="#000000">
  <tr>
    <td 
width="33%" bgcolor="#000000" align="center"><input name="sfondo" 
type="radio" value="#000000" 
onclick="sel(0)"></td>
    <td width="33%" 
bgcolor="#FF6666" align="center"><input name="sfondo" type="radio" 
value="#FF6666" onclick="sel(1)"></td> 
    <td 
width="34%" bgcolor="#99FF99" align="center"><input name="sfondo" 
type="radio" value="#99FF99" onclick="sel(2)"></td>
  
</tr>
  <tr>
    <td width="33%" 
bgcolor="#99CCFF" align="center"><input name="sfondo" type="radio" 
value="#99CCFF" onclick="sel(3)"></td>
    <td 
width="33%" bgcolor="#FFFF99" align="center"><input name="sfondo" 
type="radio" value="#FFFF99" 
onclick="sel(4)"></td>
    <td width="34%" 
bgcolor="#FFCC99" align="center"><input name="sfondo" type="radio" 
value="#FFCC99" onclick="sel(5)"></td>
  </tr>
  
<tr>
    <td width="33%" bgcolor="#CC99FF" 
align="center"><input name="sfondo" type="radio" value="#CC99FF" 
onclick="sel(6)"></td>
    <td width="33%" 
bgcolor="#FFFFFF" align="center"><input name="sfondo" type="radio" 
value="#FFFFFF" onclick="sel(7)"></td>
    <td 
width="34%" bgcolor="#999999" align="center"><input name="sfondo" 
type="radio" value="#999999" checked onclick="sel(8)"></td>
  
</tr>
 </table>
 </div>
</form> 
</div>


 


PER ACCEDERE ALLA PAGINA FIGLIA UTILIZZO UNA SERIE 
DI OPTIONS CHE MI PERMETTONO DI APRIRE LA PAGINA FIGLIA AD UNA DATA ANCORA. 
NELLA FUNZIONE VaiA() E' PRESENTE UN CICLO FOR CHE MI PERMETTE DI STABILIRE 
QUALE E' IL RADIO BUTTON ATTUALMENTE SELEZIONATO E APRIRE COSì LA PAGINA FIGLIA 
CON LO STESSO COLORE


<form method="post">
<script 
language="JavaScript">
<!--
function VaiA(form) {
 var 
indice=form.Seleziona.selectedIndex
 var 
apri=window.open(form.Seleziona.options[indice].value, 
target="lettere")
 
 //con queste tre righe cambio il colore 
anche a Equadorbot
 for (var n=0; n<colore1.sfondo.length; n++)  
{
  if(colore1.sfondo[n].checked) 
{
   apri.document.bgColor=colore1.sfondo[n].value;
   break; 
    }
   }
 }


 


//-->
</script>
<td 
height="1">
  <select name="Seleziona" size="1" 
onChange="VaiA(this.form)">
    <option 
value="EquadorBot.htm#Qui">Seleziona la 
lettera</option>
    <option 
value="EquadorBot.htm#10/11/00">10 Nov 
2000</option>
    <option 
value="EquadorBot.htm#18/11/00">18 Nov 
2000</option>
    <option 
value="EquadorBot.htm#03/12/00">3 Dic 
2000</option>
    <option 
value="EquadorBot.htm#16/12/00">16 Dic 
2000</option>
    <option 
value="EquadorBot.htm#23/12/00">23 Dic 
2000</option>
    <option 
value="EquadorBot.htm#08/01/01">8 Gen 
2001</option>
    <option 
value="EquadorBot.htm#14/01/01">14 Gen 
2001</option>
    <option 
value="EquadorBot.htm#23/01/01">23 Gen 2001</option>
  
</select>
 </form>


 


PAGINA FIGLIA (EquadorBot.htm):


NON CONTENE NESSUN CODICE, SOLO LE ANCORE A CUI 
PUNTA IL FORM SELEZIONA DELLA PAGINA MADRE


 


PAGINA CON FRAMESET (Equador.htm):


SEMPLICEMENTE


<frameset rows="31%,*">
  
<frame name="superiore" src="EquadorTop.htm" scrolling="no">
  
<frame name="lettere" src="EquadorBot.htm">
  
<noframes>
  <body>







Grazie della risposta, ma non funziona 
ugualmente.


Anche se uso l'array standard di javascript 
elements[] al posto del nome che io ho dato all'element option (sfondo), il 
problema rimane: all'interno del frameset il colore non me lo 
cambia.


Altre idee?


fil