Newsgroup: it.comp.lang.javascript
Titolo: [lungo] doppio redirect

Ciao.
Ho da sottoporre a voi "grandi" (anzi, a tutti) un quesito.
Cercherò di spiegarvi tutto bene e in modo conciso (anche se non ci 
riuscirò!!).
Ho una pagina (index.html, nella cartella sito/principale) composta da 
due frames:
1) frame (che inizialmente contiene la pagina frame.html, cartella 
sito/principale)
2) body  (che inizialmente contiene la pagina home.html, cartella 
sito/principale)
Navigando nel sito il contenuto del frame "body" cambia in base ai link 
del frame "frame". 
Nel frame "body" vengono caricate pagine dalla cartella sito/principale 
e da due cartelle sito/cart1 e sito/cart2
Dal momento che voglio che il frame "frame" sia sempre presente, anche 
se uno cerca di accedere ad una pagina interna (esempio 
sito/cart1/pippo.html)ho messo in tutte le pagine delle 3 cartelle (ad 
esclusione di index.html) il comando:
----------------
if(
self.name
==
top.name
){location.href="../principale/index.html?" + 
document.URL}
----------------
in modo che venga ricaricata la pagina con i due frames e che nel frame 
body compaia la pagina pippo.html.
E fin qui tutto funziona.
Il problema nasce adesso: alcune pagine caricate nel frame "body" sono 
formate da due frames.
Ad esempio la pagina pippo.html è composta dal frame "pipframe" (che 
inizialmente carica la pagina sito/cart1/pipframe.html) e "Pipbody" (che 
inizialmente carica la pagina sito/cart1/piphome.html). 
Nel frame "pipbody" sono caricate tramite link da "pipframe", delle 
pagine, tutte contenute nella cartella sito/cart1 (che è la stessa che 
contiene pippo.html), ad esempio "paperino.html".
Hoi quasi finito la spiegazione e arrivo alla domanda: come posso fare 
in modo che se uno carica il file paperino.html venga ricaricata 
l'intera struttura della pagina, e cioè index.html con il frame "frame" 
che contiene frame.html, il frame "body" che contiene pippo.html, e in 
questa il frame "pipbody" con paperino.html e il frame 
"pipframe" che contiene pipframe.html ??
Ho provato ad inserire nelle pagine simili a paperino.html il codice
----------------
if(
self.name
==
top.name
){location.href="pippo.html?" + document.URL}
----------------
con Netscape 4.5 mi sembra tutto OK, con IE 5.5 carica frame.html in 
"frame", carica pipframe.html in "pipframe", e poi rifa la stessa cosa n 
volte in "pipbody", riempiendomi la pagina di frames :-)
Non vorrei dire una scemata, ma ho notato questo problema solo con 
IE5.5, mentre con IE 4 mi sembrava che andasse tutto bene.
Ho finito!! Avete qualche suggerimento? Grazie 1000 in  anticipo.
-- 
Drago (Andrea) 
drago77NO...@freemail.it
WM di Hokuto Audioteca 
http://digilander.iol.it/hokutoaudioteca
Pagina personale: 
http://digilander.iol.it/drago77
Togli NONMISPAMMI per rispondere in mail

prova con..
if(self.location==top.location){
self.location="tua_pagina_frame.htm"
}
andreotta fabiano
 WebMŞster ATI POWER s.n.c.
 
andr...@atipower.it
 
http://www.atipower.it
 
http://www.aticommerce.com
 
http://www.afdsoftware.freeweb.org
 
http://www.jsdir.com
 
http://www.javascript.3000.it

}
OK, grazie, domani provo e vi faccio sapere. (sperando bene...)


}
Niente da fare...carica di nuovi 1000 volte il frameset iniziale, coi 
frames uno dentro l'altro...


 IE5.5, mentre con IE 4 mi sembrava che andasse tutto bene.
[]
Non ho ancora installato IE5.5 e quindi queste considerazioni sono
relative a IE5.0.
A differenza di NS, IE restituisce in modo diverso location.href e
document.URL
per prima cosa in document.URL non c'e' la queryString e quindi nel tuo
caso non puo' funzionare nel doppio passaggio;
inoltre (almeno off-line) manca una barra dopo il protocollo e non
funziona correttamente come indirizzo:
IE5.0
URL file://F:/Visual%20Studio%20Projects/pippo.html
location file:///F:/Visual%20Studio%20Projects/pippo.html
Da quello che dici con IE5.5 c'e' un problema ancora diverso; sembra che
nella
lettura della queryString in pippo.html recuperi tutto l'url invece che
la sola queryString.
Hai provato con degli alert per verificare come e' valorizzata la query
nei vari passaggi?
Io ho usato il codice seguente (simile al tuo) che funziona
correttamente con IE5.0 NS4.51 e NS6
-------index.html----
 valore=location.search.substring(1);
function func() {
 if (valore!="") basso.location.href=valore;
 alert(valore)
}
--------------------
-----pippo.html---
valore = location.search.substring(1);
if (self.location==top.location)location.href="index.html?"
+document.location
function func() {
 if (valore!="") pipBody.location=valore;
 alert(valore)
}
---------------------------
----paperino.html-------
if(self.location==top.location){location.href="pippo.html?" +
document.location}
----------------------
Saluti, Paolo

correttamente con IE5.0 NS4.51 e NS6
ehm...non sono molto esperto di javascript...quindi mi sono perso un 
paio di termini... (sporattutto querystring), comqunque ti ringrazio. 
Testerò la tua soluzione (a me interessa comunque che funzioni online) e 
visto che ho tanta voglia di imparare cercherò di capire il tutto! 
Grazie ancora.


 paio di termini... (sporattutto querystring), comqunque ti ringrazio.
[]
queryString e' la stringa di parametri che aggiungi all'url, ossia tutto
quello che c'e' nell'url separato dal ?.
Normalmente il formato e' separatore ?, nome parametro =valore,
separatore parametri &...:
www.miosito.it/miapagina.htm?var1=pippo&var2=pluto...
..
l'utilizzo del formato va1=pippo non e' obbligatorio per l'utilizzo
client-side, puoi passare anche solo pippo dato che devi recuperare il
codice con delle substr; mentre, ad esempio in ASP, c'e' un metodo che
recupera il valore utilizzando il nome del parametro.
Saluti, Paolo

document.location}
Ho provato lo script che mi hai suggerito (per ora solo offline), i 
risultati non sono proprio quelli sperati:
Caricando paperino.html mi ricarica index.html con frame.html (e qui 
tutto bene), ma nel body mi carica direttamente pippo.html con i suoi 
frames originari e non con paperino.html.
Inoltre (e questo non capisco perché lo faccia) se dal frame principale 
cerco di caricare home.html nel body mi carica pippo.html, e non c'è 
verso di fargli caricare home.html lì !! 
:-(
Non ho ancora potuto testarlo online, ma purtroppo non credo che 
funzioni...
Ciao e grazie


 funzioni...
[]
Ti da lo stesso problema con qualsiasi browser?
Ho pubblicato le pagine  su  
http://digilander.iol.it/galileopd/
 (e' un
sito dove faccio prove senza banner :-))) ) a me funzionano con IE5.0 e
NS4.51.
Magari non ho capito le tue necessita'.
Sappimi dire.
Saluti, Paolo

NS4.51.
Grazie della disponibilità: vado a dare un'occhiata.
Ciao!


Magari non ho capito le tue necessita'.
Hai capito benissimo!
L'unica cosa diversa (ma non credo dia problemi) č che il mio primo frameset 
č fatto da 2 colonne, mentre pippo.html contiene un frameset di 2 righe.
Comunque ora provo con calma e se avrai ancora pazienza con me ti saprņ 
dire!


dire!
:-(((
Ho provato, stavolta ho controllato tutto e ho fatto tutto con calma ma 
niente... se carico 
http://digilander.iol.it/drago77/simpson_2f.html
 mi 
ricarica la homepage col frameset giusto, ma mette nei frame i documenti 
iniziali :-(((


 iniziali :-(((
Nei 2 frameset index.html e simpson.html devi lanciare la funzione
func() sull'evento onload; ora non viene mai eseguita
<FRAMESET ....................... onLoad="func()">
Se ci sono altre difficolta', apri un altro catena di messaggi.
Saluti, Paolo

Se ci sono altre difficolta', apri un altro catena di messaggi.
Grazie, grazie, grazie, n*(grazie).
Comparirai nella pagina dei ringraziamenti del mio sito, per la tua 
pazienza.
Ciao e grazie ancora x l'aiuto. (anche agli altri che sono intervenuti 
in questo thread)
