Newsgroup: it.comp.lang.javascript
Titolo: Div con location.replace

la mi apagina cliente.asp è cosi formata:
<div id="ricerca" style="position:absolute;left:0px;top:0px;">
 <iframe scrolling="no" frameborder="0" name="ricerca_cliente"  width="100%" 
height="200"   src="ricerca_cliente.asp?<%= 
request.serverVariables("query_string") %>"  >
 </iframe>
</div>
<div id="lista"  style="position:absolute;left:0;top:181px;">
 <iframe scrolling="auto" frameborder="0" name="elenco_cliente" width="100%" 
height="320" src="" >
 </iframe>
</div>
<div id="div_cliente" style="position:absolute;left:0px;top:0px;visibility: 
hidden;">
 <iframe scrolling="no" frameborder="0" name="cliente_1"  width="100%" 
height="100"  src=""  >
 </iframe>
</div>
Dentro il div id=ricerca ho la pagina ricerca_cliente.asp il cui all'interno
ho una form <form name="ricerca" action="elenco_cliente.asp" method="post" 
target="elenco_cliente"> che con target=elenco_cliente mi da la lista della 
query dentro il div id=lista
la lista ottenuta dentro il div id=lista ha dei link --> 
cliente_1.location.replace("../clienti/scheda_cliente.asp?pagename=descrizione&id_nominativo=" 
+ id_nominativo) il cui contenuto ottenuto dal click vorrei vederlo dentro 
il div id=div_cliente ma non ci riesco...  nel senso che se quel div lo 
metto dentro la pagina elenco_cliente.asp lo vedo ma se è messo dentro la 
pagina cliente.asp ( dove voglio io ) non riesco a farlo fare...
come posso fare??? ho fatto un sacco di prove ma non riesco a far mettere la 
pagina dentro sto div help help help

 pagina cliente.asp ( dove voglio io ) non riesco a farlo fare...
Non devi ragionare in termini di "div" ma di "iframe": tu in quella pagina hai
tre finestre distinte, piů quella principale. Gli elementi e oggetti contenuti
in una, non sono visti in modo implicito dalle altre.
-- 
"Your sin is beyond the grace of God" ~ Ky Kiske


OK capito e provato ed ora funzia come voglio io, solo che non ho capito una 
cosa...
perchè tutto funzia dentro lo stesso iframe mentre con la logica di 3 iframe 
mi funziona metà procedura?
nell'iframe name="elenco_cliente" avevo messo questa funzione:
<SCRIPT language=JavaScript type=text/JavaScript>
<!--
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) 
{ v=args[i+2];
    if (obj.style) { obj=obj.style; 
v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
//-->
</SCRIPT>
senza la modifica che tu mi hai consigliato questa funzione funzionava, ora 
che ho modificato il link correttamente questa funzione non funzia più, ho 
provato a spostarla dentro la pagina principale che contiene tutti e 3 gli 
iframe ma non funziona, cosi ne ho lasciato una copia dentro la pagina 
principale e una dentro iframe elenco_cliente ma non funzia neppure in 
questo modo
che consigli puoi darmi?

Per correttezza pubblico tutto lo script
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; 
if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) 
x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) 
{ v=args[i+2];
    if (obj.style) { obj=obj.style; 
v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
<TD class="cell_key" onClick="cliente(<%= 
rs.absolutePosition%>,'<%=trim(rs("codice"))%>','<%=trim(rs("blocco")) %>') 
+ MM_showHideLayers('div_cliente','','show') "><%= trim(rs("codice")) 
%></td> 

 questo modo che consigli puoi darmi?
Di definire meglio cosa vuol dire "non funziona", quali sono gli errori
forniti dalla JS Console. Eventualmente se continui ad avere ancora problemi,
di pubblicare la pagina online e fornire il link in modo tale che possa vedere
in prima persona la questione.


 + id_nominativo)
Puoi farlo in due modi, principalmente.
Il primo, scrivendo il codice che rende visibile l'elemento nella stessa
pagina in cui fai l'assegnazione della location, ovvero:
parent.cliente_1.location.replace(..etc..);
parent.document.getElementById("div_cliente").style.visibility="visible";
Come vedi si basa tutto sul discorso che ti ho già fatto sui riferimenti alle
finestre.
Il secondo modo, invece, è visualizzare il div *solo* quando l'iframe
"cliente_1" ha terminato di caricare la pagina.
Per fare ciò, basta che tu nella pagina "scheda_cliente.asp" che vai a
caricare nell'iframe, tu scriva:
window.onload=function(){
	parent.document.getElementById("div_cliente").style.visibility="visible";
}
Ovviamente se nella stessa pagina hai altre funzioni che vengono richiamate
all'onload (da <body onload=".."> oppure da script) devi integrarle.


 finestre.
Ho utilizzato questo mi sembra quello piu vicino alle mie esigenze
Ti faccio un'ulteriore domanda....
Il mio Div è apparso al click con visibility="visible" nella pagina appena 
creata ho messo un td con all'interno "chiudi" cui vorrei che mi chiudesse 
questo DIV.... per cui, prima lo volevo visible, adesso hidden.....
chiedo troppo lo so... ma sono ferma da giorni proprio per questo effetto 
del sito che sto facendo un po alla volta.
come chiudo il div appena creato??? 

 come chiudo il div appena creato??? 
Non era ben chiara la domanda, ma ho visto che hai aperto un thread che
penso si riferisca proprio a questa questione, visto che hai concluso
con "adesso funziona tutto" :)
-- 
"When you have eliminated the impossible, whatever remains, 
however improbable, must be the truth."