Newsgroup: it.comp.lang.javascript
Titolo: chiamata layer

ciao a tutti,
ho il seguente problema: da una pagina semplice in html, devo
richiamare una un'altra pagina con caricato uno dei tanti layer
presenti nella stessa. Ad esempio: ammettiamo che nella prima pagina
ci siano 3 link 'a', 'b' e 'c' relativi a layers presenti in una
seconda pagina. Cliccando su 'b', voglio che si carichi la seconda
pagina con 'b' visible e nascosti 'a' e 'c'. E' possibile fare una
cosa di 'sto genere e come faccio a passare il parametro layer
attraverso un href?
Grazie

 wrote:

Da pag1 passi le informazioni che occorrono a pag2:
<a href="pag2.htm?visible=spl=hidden=spl=hidden">pag2 a</a><p>
<a href="pag2.htm?hidden=spl=visible=spl=hidden">pag2 b</a><p>
<a href="pag2.htm?hidden=spl=hidden=spl=visible">pag2 c</a>
In pag2 recuperi i parametri, li splitti e crei un array:
visibilita=location.search.substr(1).toString().split("=spl=");
All'onload di pag2 chiami una funzione:
<body onload="Pippo();">
Pippo() è così fatta:
function Pippo() {
document.getElementById("idLayer1").style.visibility=visibilita[0];
document.getElementById("idLayer2").style.visibility=visibilita[1];
document.getElementById("idLayer3").style.visibility=visibilita[2];
}
Il tutto vale per IE>=5 e NS>=6. 
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

> Il tutto vale per IE>=5 e NS>=6.
ti ringrazio molto per il suggerimento..quello del passaggio parametri
č una buona idea, ma purtroppo le specifiche di progetto richiedono
una visibilitą cross-browser maggiore.
Grazie cmq!

 attraverso un href?
Presuppongo quindi che la visualizzazione di un layer escluda quella 
degli altri (leggasi, se "a" e' visualizzato, allora "b" e "c" sono 
invisibili).
Partendo da questo presupposto, il settaggio di default dello stile dei 
vari layer nella pagina 2, per quanto riguarda l'attributo "visibility", 
sara' "hidden".
Quindi:
<a href="pagina2.htm?layer=a">visualizza layer "a"</a><br>
<a href="pagina2.htm?layer=b">visualizza layer "b"</a><br>
<a href="pagina2.htm?layer=c">visualizza layer "c"</a><br>
 
nella pagina2.htm, metti nell'onload del body una funzione che contenga 
il seguente codice:
	var layer=self.location.search.substr(1).split("=")[1];
 
	if (typeof(layer)=="undefined"){
		alert("Attenzione\nParametri errati, nessun layer 
specificato nella querystring");
	}else{
		if (document.getElementById)
			document.getElementById
(layer).style.visibility="visible";
		else if (document.all)
			document.all[layer].style.visibility="visible";
		else if (document.layers)
			document.layers[layer].visibility="show";
		else
			alert("Attenzione\nImpossibile stabilire il tipo di 
accesso ai layer del tuo browser");
 
	}
Ti conviene adottare uno sniffing di browser un po' piu' avanzato, in 
caso tu desideri supportare anche qualche versione di Opera.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"Quanti angeli danzano sulla punta di uno spillo?"

ringrazio tutti per la cortese partecipazione e per i vs suggerimenti!


scusa se mi intrometto... ma ci sarebbe un modo per inserire in una
variabile la query string (?submit=......) in modo da poterla poi
riattaccare in un link?
(ad es: location: 
www.ciao.com/io.asp?login=1
 ed inserire ?login=1 in un
altro link tipo 
www.html.it?login=1
)

 altro link tipo 
www.html.it?login=1
)
lo fai lato server (in ASP nel tuo caso)
<% @language=JScript %>
<%
	var login=Request.QueryString("login").item;
%>
<a href="
http://www.html.it/pagina.htm
<%=login?"?"+login:""%>">link</a>
Lato client, puoi fare qualcosa (ed e' anche piu' "cool" ;) ), solo che 
con NS 4.x hai dei problemi con link dentro i layer.. ci sarebbe un modo 
di risolvere anche quello, ma diventa un po' pensantuccio (dovresti 
iterarti tutti i layer del documento + quelli annidati).


no ma a me non interessano i layer :)
proprio per non dover fare 20 request in asp, volevo, dovendo fare un pagina
del tipo "confermi l'operazione?" inviare un form che contiene tutti i
paramentri vecchi + un semplice "&conferma=1"
c'era un modo in javascript per elaborare la query string, ne parlammo su
questo ng tanto tempo fa... ma non riesco proprio a ritrovarlo!
--
Madarco
Madar...@libero.it
-(rimuovere XXX)

 questo ng tanto tempo fa... ma non riesco proprio a ritrovarlo!
Mhm, quello che chiedi tu adesso e' una cosa diversa, allora :)
Se hai una form, ed i dati li passi tramite querystring, non devi fare 
tutto quell'accrocchio.
In javascript accedi alla stringa della querystring in questo modo:
self.location.search
search e' una stringa che contiene i caratteri dal "?" in poi, presenti 
nell'indirizzo della pagina.
Quindi, se hai una form, puoi mettere nell'onsubmit della stessa una 
funzione che ti costruisce l'url della pagina successiva partendo dalla 
self.location.search e dai dati appena inseriti.


Grazie mille! :) era proprio quello che mi serviva :)
