Newsgroup: it.comp.lang.javascript
Titolo: diffcoltà con proprietà <a href=''></a>

Sto uscendo matto da ore con il seguente codice:
var srs 	= document.getElementById (srcId);
// getting the source id
	var dest 		= document.getElementById (dstId);
// getting the destination id
// Copying the source element to the destination element 
dest.href 	= srs.href;
Succede che se clicco sul link continuo ad andare sulla medesima
pagina inizializzata nel codice statico html; se apro in un'altra
istanza del browser finisco sulla pagina corretta, sia su IE che FF
Qualcuno sa dirmi perchč? Dove č il mio buio errore?
Ciao
daniele

 Qualcuno sa dirmi perchè? Dove è il mio buio errore?
non vedo errori.
Posta anche i 2 tag ...
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

Posta anche i 2 tag ...
Gli id funziano perchè funzia anche questa istruzione:
dest.getElementsByTagName("img")[0].src =
srs.getElementsByTagName("img")[0].src;
In parole povere .... o santo Dio sono un in idiota: codice HTML:
<a  id="drlink0"
	href="
http://www.
......../" 
		title="Il link aprirà una nuova finestra del browser"
    onclick="window.open('
http://www.
.........../','',''); return
false;" 
    onkeypress="window.open('
http://www.
............./','',''); return
false;">
per essere w3c compliant
e ora avrò problemi a cambiare i target degli eventi :-(



E infatti continua a non funzionare dopo:
dest.href = srs.href;
dest.onclick="window.open('" + srs.href + "','',''); return false;"
dest.onkeypress	="window.open('" + srs.href +  " ','',''); return
false;">
(Gli apici sono giusti, anche se non si vede bene la distinzione tra
doppi e singoli; non ci sono errori sintattici)

 E infatti continua a non funzionare dopo:
non ho capito il tuo discorso del messaggio di prima (e neanche questo in
realtà) ... puoi fare un esempio semplice, completo e non funzionante?
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

realtà) ... puoi fare un esempio semplice, completo e non funzionante?
Hai ragione Cristiano, ne sono venuto fuori un po' confusamente. In
sostanza il codice ruota ciclicamente N immagini inserite in links su
m placeholders copiando immagini, links, titles and so on
Allora, codice js:
var dstNum = 3; 					// number of
the placeholders to manage
var srcNum = 12; 				// number of the
banners to get
var i ;		// the major cycle index (along source)
var j = 0;	// the minor cycle index  (along destination)
var interval = 3000;			// time interval in msecs.
var lista;
var dstprefix = "drlink";	// the id prefix for destination link
var srcprefix = "drsrc";	// the id prefix for the source link
// Here starts the time sequence updating the top page banners
// Being the first 3 banners already placed atop on the page the cycle
must start with the index 3
var check = checkId();	// all the required ID are here?		
i = 5 ;			// the major cycle index (along source)
if (check.length > 0)
{	
	alert("ERRORE: id not found: " + check + " skipping banner
animation");	
}
else
{	
	timeoutid = setTimeout("swapBanners()", interval);	//
imposto l'intervallo 
}
/* 
-----------------------------------------------------------------
	The core function: swap the banners
-----------------------------------------------------------------
*/
function swapBanners()
{
	if (i >= srcNum) 
	{	
		i = 0;
	}							//
restarting from 0 if running out of banners
	j = i % 	dstNum;
// compute the destination banner index
 
	var srcId = srcprefix + i;
// build the expected id for source banner
	var dstId	= dstprefix + j;
// build the expected id for destination
	var srs 		= document.getElementById (srcId);
// getting the source id
	var dest 		= document.getElementById (dstId);
// getting the destination  id
// Copying the source element attributes to the destination element
attributes
	// msg.innerHTML	= srcId + " -- " + dstId +
(srs.childNodes[0].src ? " definito" : " NON definito" );
	// dest.childNodes[0].src	= srs.childNodes[0].src;
 
	var tmp = "window.open('" + srs.href + "','',''); return
false;";
 
	dest.href 	= srs.href;
	dest.onclick	=	tmp;
	dest.onkeypress	=	tmp;
	dest.title		= srs.title;
 
 
dest.getElementsByTagName("img")[0].src =
srs.getElementsByTagName("img")[0].src;
	i++;
	timeoutid = setTimeout("swapBanners()", interval);	//
setting interval
}
il markup soggiacente è una cosa del tipo:
dove le "destinazioni" sono 
<a id="drlink0" href="
http://www.
........it/"  title="....title....."
onclick="window.open('
http://www.
........it/','',''); return false;" 
 onkeypress="window.open('
http://www.
.....it/','',''); return false;">
e i "sorgenti" sono: 
<a id="drsrc0" 
href="
http://www.
......it" title=     "...title...."
onclick="window.open('
http://www.
......it','',''); return false;"
onkeypress=
    "window.open('
http://www.
......it','',''); return false;"><img
src='images/suap.jpg' class=
    'mid' alt='.....title.....' /></a> 
Quello che mi sta creando non pochi grattacapi è il comportamento dei
link. Alcuni si aprono in un'altra istanza del browser, altri si
aprono nella istanza corrente. E quello che è peggio ho la certezza
che mi sto perdendo in un bicchier d'acqua.
Ciao

 	dest.onclick	=	tmp;
uhm ... ma sei sicuro che cosě funzioni? dovrei fare un test ma non ho
tempo ... non fai prima a lasciarlo fisso e a cambiare solo l'src? cioé: se
lasci fisso onclick="window.open(this.href);return false" e cambi solo
l'href?
Se il problema persiste: cosa dice la console errori di firefox? Puoi
mettere in linea un semplice esempio completo?
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.


Secondo me fuochino .... vediamo se ti ho capito
Ovvero: l'evento inserito nel sorgente html :<a id="drlink0"
href="
http://www.
........it/"  title="....title....."
onclick="window.open('
http://www.
........it/','',''); return false;" 
 onkeypress="window.open('
http://www.
.....it/','',''); return false;">
va modificato in modo che la window.open abbia come argomento invece
che un indirizzo hardwired this.href:
href="
http://www.
........it/"  title="....title....."
onclick="window.open(this.href,'',''); return false;" 
 onkeypress="window.open(this.href','',''); return false;">
e già questo mi pento di non essermene accorto prima
Poi al momento della assegnazione non faccio altro che cambiare
l'attributo href dell'oggetto?
Provo e ti so dire. 
Con la console degli errori di FF ci convivo quasi more uxorio. Questa
volta non si è lamentata come fa tutte le sere :-) 
Grazie per le tue ottime osservazioni. Le applico e se ho problemi
torno a farmi vivo
Ciao!

 l'attributo href dell'oggetto?
così a naso sì