Newsgroup: it.comp.lang.javascript
Titolo: Frames e onClick()

Sto iniziando con JavaScript, qualcuno mi aiuta con il seguente problema?
Ho una pagina con dei frame, all'interno della pagina ho una funzione
javascript collegata all'evento onClick():
Quando qualcuno clicca su un link in un frame, viene visualizzata una certa
pagina in un'altro frame (proprieta' "target")
Nella funzione javascript ho bisogno di sapere quale link è stato cliccato e
in quale frame e' stata visualizzata la nuova pagina.
Fino a un certo punto ci arrivo:
ricavo l'evento con:
evento=this.parentWindow.event;
ricavo il link su sui e' stato fatto click con:
alink=evento.srcElement
ricavo l'url con
aurl=alink.href
Come faccio a ricavare il frame target, quello in cui viene visualizzata la
pagina?
Grazie
Marco


this.frames.name
andreotta fabiano
 WebMªster ATI POWER s.n.c.
 
andr...@atipower.it
 
http://www.atipower.it
    -new-
 
http://www.afdsoftware.freeweb.org
 
http://www.jsdir.com


Grazie per la risposta, ma non e' questo che mi serve!
Ho bisogno di ricavare il frame su cui si aprira' la pagina, non quello su
cui e' stato fatto click.
Immagina di avere 2 frame: uno sta a sinistra e contiene un indice (lo
chiamiamo f_indice), l'altro sta a destra e contiene il testo di un
documento (f_testo).
Se qualcuno clicca su un link dell'indice, ho bisogno di ricavare f_testo,
perche' e' li' che si visualizzera' la pagina (frame target).
Purtroppo il codice JavaScript deve essere generico, a priori non so che
link ci saranno nella pagina, ne' su quali saranno i frame target dei link.
Marco

Il Mon, 19 Mar 2001 16:54:34 +0100, Marco Turconi ha scritto.....

Credo che sia più facile gestire due array, con le URL dei links ed i TARGET.
VAR links=new Array("pag1.html","pag2.html","pag3.html","pag4.html",);
VAR targets=new Array("frame1","frame2","frame2","frame1",);
function vai(quale)
{
top.frames[targets[quale]].location=links[quale];
tuafunzione(quale);
}
Dentro la stessa funzione vai() sai già quale sarà il target (l'elemento 
dell'array) e lo puoi riutilizzare per la tuafunzione(). Li ho passato l'indice 
dell'array, altrimenti fai tuafunzione(targets[quale]); e passi il nome del 
target.
I links invece di 
<A HREF="pag3.html" TARGET="frame2">...</A>
saranno
<A HREF="javascript:vai(2)">...</A>
p.s.
La numerazione degli elementi dell'array comincia da ZERO, quindi il terzo 
elemento ha cardinale DUE.
Maggiori info nelle Lezioni su JsDir.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
              All the JavaScript you need
------------------------------------------------------------------------
               Nessun traguardo è abbastanza lontano.
------------------------------------------------------------------------


Purtroppo la mia funzione deve essere generica. Io faccio la funzione,
qualcun altro fa la pagina, in cui mettera' il mio codice, io non posso
sapere che link e/o frame ci saranno. Il codice JavaScript deve prendere
tutte le informazioni dall'evento, o dalla pagina.
Ho visto che se definisco il link come:
<p><a href="pagina1.htm" target="main">Pagina 1</a></p>
nella proprieta' "target" del link trovo effettivamente scritto "main".
Cio' risolve parzialmente il problema.
Se uso il "base target" nella definizione dei frame, e non lo metto nell'
"href", purtroppo la proprieta' "target" rimane vuota. :-(
Possibile che non ci sia modo di sapere il frame target anche in quella
situazione? Grrrrr.
Marco

 situazione? Grrrrr.
per IE4 dichiari un id per BASE
<BASE TARGET=window_name id="pippo">
alert(document.all('pippo').target);
per IE5+ e NS6
alert(document.getElementsByTagName('base').item(0).target);
per NS4 non ho la minima idea :-(
Saluti, Paolo