Newsgroup: it.comp.lang.javascript
Titolo: [INFO] Problema con aggiornamento frames

Ho realizzato un sito il cui layout e' composto da 3 frames:in alto il
titolo, a sinistra il menu' e nella zona centrale c'e' la pagina
principale. La struttura dei frames e' stata realizzata mediante tag
html (non in javascript) nel file index.html. Quando carico la pagina io
avevo la necessita' di aggiornare il frame MENU e PRINCIPALE
semplicemente cliccando in un bottone contenuto in TITOLO. Ho utilizzato
questo script:
function langita(){
top.menu.location.href="menuita.htm";
top.principale.location.href="presentazione-ita.htm";
}
che poi richiamo con href="javascript:langita" dal bottone.
Il problema e' che in locale funziona tutto egregiamente mentre se lo
carico da internet mi da Errore nella visualizzazione della pagina (con
IE 5). Ho provato a caricare la pagina con Crazy Browser e l'errore non
viene visualizzato, pero' i due frames non vengono aggiornati. Poi ho
provato con Opera e magicamente funziona. Immagino sia un errore dovuto
alle impostazioni dei browser riguardo la protezione. Non ho ancora
fatto la prova ma credo che abbassando la protezione sugli script java
dovrebbe funzionare (il menu usa uno script per cambiare il bottone
quando ci passa sopra il mouse e funziona con ogni browser). Come posso
aggirare questo ostacolo? Saro' mica costretto a dire a tutti di
modificare le impostazioni del proprio browser? Ho appena iniziato ad
usare gli script java e quindi non ho idea se esista una soluzione
alternativa.
Grazie a chiunque possa aiutarmi.
Delete "NOSPAM" if you reply via E-Mail.
Cancellate "NOSPAM" per rispondere via E-Mail.

i 3 frames appartengono allo stesso dominio?
Se sono di dominio diverso non puoi farci nulla, temo


Nei 3 frames vengono caricati 3 file htm provenienti dalla radice dello
stesso dominio (sono tutti contenuti nella stessa cartella remota).


 }
Prova un po'...
function langita(){
top.frames.menu.location.href="menuita.htm";
top.frames.principale.location.href="presentazione-ita.htm";
}
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

}
Gia' provato, sia come lo hai scritto tu, sia sostituendo " con ' ma non
cambia niente.
Se carico la pagina con IE (con Opera funziona) continua a darmi errore
nella visualizzazione della pagina. Se guardo i dettagli del messaggio
di errore mi dice:
Errore:'top.frames.intestazione.location' e' nullo o non e' un oggetto
Che vuol dire?



Dimenticavo una cosa: ho aggiunto questa riga in modo che mi venga
aggiornato anche il frame su cui ci sono i bottoni.
Per farvi un'idea il sito e' 
tennisclubsolaro.cjb.net
 e risiede su
Digiland.
Il layer e' strutturato in 3 frames: in quello in alto (intestazione)
viene caricata la pagina titolo.htm che contiene i bottoni per le
quattro lingue; nel frame di sinistra (menu) viene caricata la pagina
menuita.htm e ci sono i bottoni del menu' in italiano (in remoto sono
presenti anche meueng.htm, menufra.htm e menuger.htm x essere caricati
alla scelta della lingua); nel terzo frame (principale) viene caricata
la pagina presentazione-ita.htm (e sono presenti le relative pagine
nelle altre 3 lingue).
Quando premo la bandierina inglese sul titolo dovrebbe ricaricarsi il
titolo per cancellare automaticamente la visualizzazione del poligono
della mappa (e' un metodo furbo o una stupidaggine), il menu' in inglese
e la presentazione in inglese.
L'intero script inserito nella pagina titolo.htm e' il seguente:
<SCRIPT LANGUAGE="javascript">
<!--//
function langita(){
top.frames.intestazione.location.href="titolo.htm";
top.frames.menu.location.href="menuita.htm";
top.frames.principale.location.href="presentazione-ita.htm";
}
function langeng(){
top.frames.intestazione.location.href="titolo.htm";
top.frames.menu.location.href="menueng.htm";
top.frames.principale.location.href="presentazione-eng.htm";
}
function langfra(){
top.frames.intestazione.location.href="titolo.htm";
top.frames.menu.location.href="menufra.htm";
top.frames.principale.location.href="presentazione-fra.htm";
}
function langger(){
top.frames.intestazione.location.href="titolo.htm";
top.frames.menu.location.href="menuger.htm";
top.frames.principale.location.href="presentazione-ger.htm";
}
//-->
</SCRIPT>
La mappa cliccabile che definisce la posizione dei bottoni e' di questo
tipo:
<MAP NAME="Lingua">
<AREA SHAPE="POLYGON" COORDS="366, 122, 352, 132, 357, 146, 380, 148,
391, 140, 386, 126" HREF="javascript:langita()" ALT="Italiano">
<AREA SHAPE="POLYGON" COORDS="462, 112, 448, 122, 453, 136, 476, 138,
487, 130, 482, 116" HREF="javascript:langeng()" ALT="English">
<AREA SHAPE="POLYGON" COORDS="566, 108, 552, 118, 557, 132, 580, 134,
591, 126, 586, 112" HREF="javascript:langfra()" ALT="Francais">
<AREA SHAPE="POLYGON" COORDS="667, 105, 653, 115, 658, 129, 681, 131,
692, 123, 687, 109" HREF="javascript:langger()" ALT="Deutsche">
<AREA SHAPE="DEFAULT" NOHREF>
</MAP>
Il tutto e' stato inserito tra i tag </head> e <body>.
In locale, con IE, funziona senza problemi. Da remoto non va.
Spero di avervi dato qualche informazione in più per dirmi dove ho
sbagliato.
Grazie.


Mi sa che devo mettere una sola funzione x tutti e quattro i bottoni e
non una per ognuno. Ora provo.


non una per ognuno. Ora provo.
Infatti ora funziona. Grazie comunque.
Buona giornata a tutti.


 Digiland.
Mentre scrivo sono off-line e on posso andare al sito, ma controlla che 
il tuo sito non sia all'interno di un altro frameset dell'hosting (cjb o 
digilander non so ma xoom e supereva ad esempio caricano in alto un loro 
frame).
In tal caso il "top.frames" delle tue pagine non sarą piu' il tuo 
frameset, ma il frameset dell'hosting, quindi devi tenerne conto.
Ipotizzo:
top.frames.NOMEFRAMECJB.frames.TUOFRAME.... eccetera.
