Newsgroup: it.comp.lang.javascript
Titolo: La pagina non va nel frame!

Un saluto a tutti!
Ho cercato sul web... ho provato e riprovato... un mal di testa!
Chiedo un generoso aiuto!
Ho un frameset: leftFrame fisso > indice, mainFrame > 'argomento'.
(In pratica questo frameset è in 
http://www.zspace.it/mmm/help/
ma mi servirebbe anche per altre pagine simili di help/FAQ)
Vorrei che linkando una delle pagine 'argomento' (per esempio
http://www.zspace.it/mmm/help/welcome.htm
 ) si ricomponesse il
frameset con 'argomento' (welcome.htm) in mainFrame.
Ho preparato un file ndx.js:
! var mfrm;
! function refrm(myfrm){
! document.write('<html><head></head>');
! document.write('<frameset cols=\"30%,*\">');
! document.write('<frame name=\"leftFrame\" src=\"h_ind.htm\">');
! document.write('<frame name=\"mainFrame\" src=\"', myfrm,'\">');
! document.write('</frameset>');
! document.write('<noframes><body>');
! document.write('</body></noframes>');
! document.write('</html>');
! }
Nelle varie pagine 'argomento', in <head>, avrei messo lo script
(per prova solo in 'Benvenuto' = 'welcome.htm'):
! <script language="JavaScript" src="ndx.js"></script>
! <SCRIPT language=javascript type=text/javascript>
! if (window == top) refrm('welcome.htm');
! </script>
Ma non funziona: 'welcome.htm' non raggiunge la destinazione
in mainFrame; il frameset si apre, ma col solo leftFrame.
Che fare?
Comincio a ringraziare fin d'ora...
-- 
Saluti
Renato
 

 ! document.write('<frame name=\"mainFrame\" src=\"', myfrm,'\">');
Non ho ben capito (ho letto di corsa) cosa stai facendo con questa strana
function; comunque quanto sopra non vuol dire nulla; se myfrm è una
variabile devi togliere le virgole:
 document.write('<frame name="mainFrame" src="'+myfrm+'">');
 Ma scusa, perché non ricarichi direttamente la pagina nel frame corretto,
anziché riscrivere tutto ogni volta?
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

  corretto, anziché riscrivere tutto ogni volta?
E' quello che vorrei fare. Mi spiego meglio: vorrei poter comunicare 
a terzi un URL diretto ad una determinata pagina (di un Help/FAQ) che 
sta in un frameset, piuttosto che al frameset indicando il percorso 
per raggiungere detta pagina. 
Quale altra soluzione, semplice, si potrebbe sperimentare? Cosa intendi 
quando dici di ricaricare direttamente la pagina nel frame?
In PHP funziona (passando le variabili nell'URL), ma ho notato che le 
pagine in PHP si aprono meno velocemente di quelle in javascript, dato 
che questo viene eseguito sul pc client; e poi non volevo mescolare 
pagine .htm e .php ed al momento non posso rinominare tutte le pagine.
-- 
Saluti
Renato
 

 per raggiungere detta pagina. 
Boh, non riesco bene a capire..."a terzi" cosa vuol dire? Da dove vuoi
aprire, e dove?
Qualche dritta in generale:
 Se il tuo frame di sinistra ha name="leftFrame" e quello di destra
"argomento":
a) Se nei link di sinistra metti un <base target="argomento"> tutti i link
si apriranno nel frame di destra (mi sa che č deprecato in xhtml)
b) idem: dal frame di destra <base target="leftFrame"> e si apriranno a
sinistra
c) anche il tag form ha un target indicato come sopra, per scatenare la
form nel frame corretto
d) se devi farlo via javascript, per esempio un anchor a destra da aprire a
sinistra: <a href="#"
onclick="top.frames['leftFrame'].location.href='tuapagina.htm';return
false">link!</a>
etc etc
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 vuoi aprire, e dove?
Ecco: all'amico X con cui discorro delle RegExp di MMM ora posso dirgli 
di leggere all'URL 
http://www.zspace.it/mmm/help/help/usingregexp.htm
 
ed ora lui puň anche navigare nelle pagine intorno grazie al frameset. 
E soprattutto grazie a te!
In effetti questo mi serve piů per le FAQ di Foxmail che sto rivedendo 
e a cui ora posso aggiungere questo benedetto jscript che mi rodeva 
dentro da un paio di settimane!
-- 
Cordiali saluti
Renato
 

 (Devo ancora provarlo con altri browser, diversi da IE)
Non vedo problemi
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 if(window.location.href==top.location.href)
Questo tuo impalla IE: il frame non si apre ed il cursore con clessidra 
vibra (va in loop?).
Funzionava anche con: if (window == top) ma, per non sapere quale 
fosse meglio, ho lasciato quello che avevo messo prima.
Tanto funziona! :-) 
L'URL riportato prima era sbagliato; quello giusto, se vuoi vederlo č:
http://www.zspace.it/mmm/help/usingregexp.htm
 , e tutte le altre pagine 
che ora vanno da sole nel loro frame!
Ancora grazie mille!! :-)
-- 
Saluti
Renato