Newsgroup: it.comp.lang.javascript
Titolo: "ANCORA " in javascript

Ciao a tutti,
ho un menu a tendina che invia i due valori dell option alla stessa
pagina, attraverso javascript.(l ho do dovuto usare x vari motivi).
E' possibile inserire un' ANCORA(html) attraverso javascript??
Vi presento il codice x meglio capire il mio problema.
<script>
function gotomenu(i)
{	switch (i)
	{  
	 case "1" :      
	  		str = "boa/main.html"; 
	  		parent.location=str;    
	   		break;   
	 case "2" :      
	    	str = "boa/main.html";
			parent.location=str ;  
		 	break; 
}
}
</script>
<select name="select" class="tendina"
onChange="gotomenu(this.options[this.selectedIndex].value);
this.selectedIndex=0">
        <option selected>--------Products -------</option>
        <option value=1>Portable monitor</option>
        <option value=2>Deck unit monitor</option>
</select>
Io ho provato semplicemente ad aggiungere l ANCORA in:
str = "boa/main.html#portable"; 
str = "boa/main.html#Deck"; 
Ma non mi funziona...
che fare?
grazie
ciaoo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

forse non ho capito, comunque a me funziona benissimo:
a parte che dovresti usare
location.href=
il tuo problema sta nell'uso del parent a cui dovresti specificare il
nome del frame su cui vuoi agire.
Silvia Rossi ha scritto:

--
demis magoga
R&D Evangelist
*> project realizer <*
http://www.e-tree.com
____________________
E-TREE S.p.A.
Via Fonderia 45
31100 Treviso
pho  
+39.0422.3107
fax  
+39.0422.310888
____________________

   str = "boa/main.html";
forse un semplice eval( "parent.location="+str);
potrebbe farlo già da solo!!! Prova :-)
Cmq, se volessi ottimizzare un po' lo script potresti fare così:
function gotomenu(i)
{ switch (i)
{
case "1" :
  str = "boa/main.html";
   break;
case "2" :
    str = "boa/main.html";
    break;
}
eval( "parent.location="+str);
}

 > </script>
E nella pagina relativa ho creato l ANCORA con
<a name="portable"></a> 
<a name="deck"></a> 
Si apre la pagina, ma non nella posizione specificata.
Sai come posso fare?
grazie
silvia


, 
ari...@libero.it
 says...
Ho preso il tuo codice e a me funziona perfettamente sia in IE e NS4.
La pagina che ho creato e' la seguente, di nome "temp.htm"
<html><head></head>
<body>
<script>
function gotomenu(i)
{	switch (i)
	{  
	 case "1" :      
	  		str = "temp.htm#portable"; 
	  		parent.location=str;    
	   		break;   
	 case "2" :      
	    	str = "temp.htm#Deck";
			parent.location=str ;  
		 	break; 
}
}
</script>
<form>
<select name="select" class="tendina"
onChange="gotomenu(this.options
[this.selectedIndex].value);this.selectedIndex=0">
        <option selected>--------Products -------</option>
        <option value=1>Portable monitor</option>
        <option value=2>Deck unit monitor</option>
</select>
</form>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<a name="portable">portable</a>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br><a name="deck">Deck</a>
</body>
</html>
Copiala, e provala. Ovviamente la finestra DEVE avere dimensioni 
ridotte, in modo tale che non sia visibile a pieno schermo ma appaiano 
le scrollbars.
Non ho cambiato nulla nel tuo codice e nn capisco come mai a te non 
vada.. Guarda in po' se ci sono differenze sostanziali con la pagina da 
te creata e sappimi dire.
Una volta appurato questo, si puo' ottimizzare la funzione "gotomenu" :)
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"Quanti angeli danzano sulla punta di uno spillo?"

scusa la forte forte ignoranza, ma scrivendo cosi:
function gotomenu(i)
{ switch (i)
{
case "1" :
  str = "boa/main.html";
   break;
case "2" :
    str = "boa/main.html";
    break;
}
eval( "parent.location="+str);
}
Dove identifico l ancora?
Cos altro devo aggiungere, forse nell altra pagina?
grazie


io ho fatto cosě, e  mi funziona su ogni browser come succede peraltro
anche a ZERO.
Opinione personale: il tuo file č corto e non noti il "movimento" della
pagina dovuto all'ancora.
================== prova.html ============================
<HTML>
<HEAD>
<TITLE>  </TITLE>
</HEAD>
<BODY>
<script>
function gotomenu(i)
{       switch (i)
        {
         case "1" :
                        str = "main.html#portable";
                        location.href=str;
                        break;
         case "2" :
                str = "main.html#Deck";
                        location.href=str ;
                        break;
}
}
</script>
<form>
<select name="select" class="tendina"
onChange="gotomenu(this.options[this.selectedIndex].value);this.selectedIndex=0">
        <option selected>--------Products -------</option>
        <option value=1>Portable monitor</option>
        <option value=2>Deck unit monitor</option>
</select>
</form>
</BODY>
</HTML>
================== fine prova.html ============================
il file a cui si viene mandati č un file lungo che contiene:
================== main.html ============================
<html>
<body>
<a name="portable"></a>
testo lungo
<a name="Deck"></a>
testo lungo
</body>
</html>
================== fine main.html ============================
--
demis magoga

 pagina dovuto all'ancora.
E' quel che pensavo anche io, per questo ho inserito BR e specificato 
che la finestra deve esser necessariamente piu' piccola, tanto - quanto 
meno - da far apparire le scrollbars :)


 Dove identifico l ancora?
Cioè?
questo è il cambiamento che ti propongo nella sola funzione gotomenu,
l'altra pagina va bene, a mio parere.



        <option value=0 selected>--------Products -------</option>
