Newsgroup: it.comp.lang.javascript
Titolo: Funzioni mostra / nascondi layer

Io voglio realizzare una situazione dove l'utente aprendo vede solo un
bottone che dice MOSTRA SEARCH dove cliccando diventa visibile un layer che
era nascosto e che al suo interno contiene una funzione di chiusura (close
layer) per ripristinare la condizione iniziale allora per prima cosa
definisco nello style questo frammento per dare un posizionamento assoluto
al layer con la clausola della proprietà visibility = hidden; dopodichè creo
due funzioni in js dove stabilisco mostra , nascondi layer e nel body
definisco con il tag DIV id il layer di nome serach precedentemente creato
inserendo i richiami alla funzione. Per farla breve non funziona nulla anche
se sono convinto che non ci sono errori di logica macroscopica? Perchè? Tra
l'altro aprendo la pagina io dovrei vedere solo il bottone che attiva il
mostra layer ma non è così. C'è qualcosa che vi stona?
<HTML>
<head>
<style type="tesxt/css">
#search
{
position:absolute;
top:200px;
left:400;
visibility:hidden;
}
</style>
</head>
<body>
<script language="java script">
function showLayer(layerName)
{
document.layers(layerName).visibility='visible'
}
function hideLayer(layerName)
{
document.layers(layerName).visibility='hidden'
}
</script>
<head>
<center>
<DIV ID="search">
<table bgcolor=#ffffff cellpadding=10><tr><td>
<h3>Search the  Site</h3>
<form action="cgi/bin/
search.pl
" method="post">
<img src="images/search_hd.gif" alt="search" border="0">
<p>
<table><tr>
<td valign="middle"><input type="text" size=30 name="searchString"></td>
<td valign="middle"><input type="image"
src="images/search_go.gif" alt="go"  border="0"></td></tr></table>
</form>
<p>
<a href=onclick="hydeLayer('search')">
close the layer</a>
</td></tr></table>
</div>
<br>
<br>
<a href=onClick="function showLayer('search');"><input type="button"
value="mostra layer"></a>
</body>
</HTML>

 <script language="java script">
JavaScript (tutto attaccato, c'è uno spazio di troppo)
con queste 2 modifiche con IE all'apertura si vede solo il tasto

In effetti le tue indicazioni erano gravi (amenità da neofita), ma il mostra
layer adesso con questo nuovo codice perfezionato continua a non funzionare;
ho provato a cambiare anche sintassi sulla funzione mostra del bottone
provando a scrivere a href="javascript:showLayer('search')" ma non vuole
saperne di funzionare.
<HTML>
<head>
<style type="text/css">
#search
{
position:absolute;
top:200px;
left:400;
visibility:hidden;
}
</style>
</head>
<body>
<script language="javascript">
function showLayer(layerName)
{
document.layers(layerName).visibility='visible'
}
function hydeLayer(layerName)
{
document.layers(layerName).visibility='hidden'
}
</script>
<head>
<center>
<DIV ID="search">
<table bgcolor=#ffffff cellpadding=10><tr><td>
<h3>Search the  Site</h3>
<form action="cgi/bin/
search.pl
" method="post">
<img src="images/search_hd.gif" alt="search" border="0">
<p>
<table><tr>
<td valign="middle"><input type="text" size=30 name="searchString"></td>
<td valign="middle"><input type="image"
src="images/search_go.gif" alt="go"  border="0"></td></tr></table>
</form>
<p>
<a href=onClick="hydeLayer('search');">
close the window</a>
</td></tr></table>
</div>
<br>
<br>
<a href="javascript:showLayer('search')"><input type="button" value="mostra
layer"></a>
</body>
</HTML>

occorre sentire gli altri perché io di layer (ripeto: funziona solo con
netscape4) so poco...però...sei sicuro che riconosca ID? non è che devi
mettere name='search' anziché id (o oltre id)?
Inoltre: sei sicuro che css con sintassi # (riferito a ID) funzioni con
netscape4?

 ha scritto nel messaggio
news:aprd62$48fh8$1...@ID-147253.news.dfncis.de...


 saperne di funzionare.
Innanzitutto quest'ultima sintassi per link e' corretta, l'altra che hai
usato no.
Poi:
- come ti diceva Cristiano document.layers e' solo per NS4.x
- alla collezione dei layer si accede con le quadre:
document.layers["mioLayer"]
- per NS4 sarebbe corretto usare "show" e "hide" anziche' "visible" e
"hidden" (IE, e NS6+)

 <a href=onClick="function showLayer('search');">
... onclick="showLayer('search');"
bye
-- 
goldicus1970 AT 
yahoo.it
http://deelan.cjb.net


var ie4 = (document.all)? true:false
var ns4 = (document.layers)? true:false
var ns6 =(document.getElementById)? true:false
if(ns6)ie4=true;
if (ns4) {
  visible = 'show';
  hidden = 'hide';
} else if (ie4) {
visible = 'visible';
hidden = 'hidden';
}
function hide/showLayer(layerName){
 if (ns4){document.layers(layerName).visibility=hidden/visible  }
 else {document.getElementById(layerName).style.visibility =
hidden/visible }
}
cosě dovrebbe funzionare.
naturalmente fai due funzioni per hide e show con hidden e visible separati.
Se vuoi vedere un esempio vai su 
www.goldonimarco.it
 li i layer vengono
usati per visualizzare un menů ad albero.
--
"Non ti fare mai beffe di un drago vivo, pazzo di un Bilbo!"
m.vignocchiCHIOCCIOLAtiscalinetPUNTOit
Medusa