Newsgroup: it.comp.lang.javascript
Titolo: problema con frames

La mia pagina è suddivisa in 2 frames: uno a destra e l'altro a sinistra.
Ho scritto una funzione in javascript che mi permette di aprire una
determinata pagina se il browser è Internet Explorer, oppure una pagina
differente se il browser è Netscape.
Più precisamente dopo avere determinato il tipo di browser con
navigator.AppName reindirizzo la pagina con un semplice window.location.href
Ora, se gli dico di aprire questa pagina nel frame di origine (ovvero il
singolo frame a sinistra) non si verifica nessun problema, ma quando gli
dico di sostituire la nuova pagina ad entrambi i due frames (cambiando la
proprietà target) mi da un errore.
Qual è la soluzione?
Grazie in anticipo


? dovresti dirci com'č il codice che stai utilizzando... se non ci
sono errori in linea di massima dovrebbe funzionare...
fa

sono errori in linea di massima dovrebbe funzionare...
Il codice per il riconoscimento del browser e il reindirizzamento delle
pagine è giusto perchè l'ho già utilizzato in diverse altre occasioni, il
problema è che non funziona quando target lo pongo uguale a 'Superiore' (che
sarebbe un frame contenente gli altri due); di seguito allego il codice.
function browser(pageIE, pageNS) {
   if (navigator.appName == "Microsoft Internet Explorer" &&
parseInt(navigator.appVersion) >= 4) window.location.href=pageIE
   else
window.location.href=pageNS }
...che poi richiamo con...
<a href="javascript:browser('paginaperIE.htm','paginaperNS.htm')"
target="Superiore">Link</a>
Secondo te dov'è l'errore?

 Qual è la soluzione?
Quando nei links usi javascript e location="xxx"
non usare i target: ti creano dei conflitti poi
molto difficili da gestire. Se hai impostato un
<base target> addirittura ti conviene mettere un
target="_self" nel link per annullare l'effetto
del <base>, e poter gestire in santa pace tutto
con JS...
Prova sempliemente così:
    parent.frames.altroframe.location="xxx.htm"
    this.location="yyy.htm"
se ancora non ti funziona manda il codice sul
NG...
;)
--
Bye.
-----------------------------------------
                Ðarius.
    <- 
www.infotronica.it/darius
 ->
             ICQ# 36150792
  - Art of JavaS.T - 
www.probo.it/aoj


E' proprio il problema del target.. fai così:
 function browser(pageIE, pageNS, target) {
    if (navigator.appName == "Microsoft Internet
Explorer" &&
 parseInt(navigator.appVersion) >= 4)
parent.frames[target].location.href=pageIE
    else
 parent.frames[target].location.href=pageNS }
 ...che poi richiami con...
<a
href="javascript:browser('paginaperIE.htm','pagina
perNS.htm','superiore')">Link</a>


perNS.htm','superiore')">Link</a>
Mi devi scusare ma ancora non funziona. La mia pagina č suddivisa
inizialmente in due frames: uno a sinistra (che si chiama "menu") e uno a
destra ("superiore"). Quest'ultimo ("superiore") č a sua volta suddiviso in
due frames: uno a sinistra ("sinistra") e uno a destra ("destra"). Nel frame
"sinistra" c'č quel famoso collegamento che deve aprire (in "superiore") una
determinata pagina per IE e un'altra per NS.
Ho notato che se al parametro target (mi riferisco al tuo esempio) assegno
'destra' tutto funziona correttamente, ma quando gli assegno 'superiore' non
ne vuole sapere di funzionare; forse perchč 'superiore' č il frame madre.
Mi sapresti aiutare?
Ti ringrazio!
Stefano

a quanto ho capito vuoi far modificare tutto il frameset superiore
(forse):
se č cosě non devi usare:
parent.frames[target].location.href=pageNS
ma semplicemente
parent.location.href=pageNS
fa