Newsgroup: it.comp.lang.javascript
Titolo: Bug di Explorer o sono io?

Con il codice seguente ho creato un menů a discesa con una serie di Link
(cliccando su MENU PROVA compare).
Ho il grosso problema perň che quando passa sopra al SELECT non lo copre
cioč č come se la SELECT (combo) fosse sempre in primo piano.
Come si risolve. Sto impazzendo. Ormai sono 2 giorni che ci provo ma non ci
riesco.
E' per caso un BUG di Explorer??
Esiste una patch?
Grazie
<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT language="javascript">
<!--
var nn=document.layers?true:false;
var N6=navigator.userAgent.toLowerCase().indexOf("gecko")!=-1?true:false
var op=navigator.userAgent.toLowerCase().indexOf("opera")!=-1?true:false
var topmargin=0,menuwidth=0;
var homekeylayer=null;
var tabs = new Array("Menu PROVA")
var menus = new Array();
var menuheights = new Array(0,0,0,20,0);
var voci=new Array();
 voci[0]=new
Array("Link","Link","Link","Link","Link","Link","Link","Link","Link")
var links=new Array();
 links[0]=new
Array("
www.html.it
","
www.html.it
","
www.html.it
","
www.html.it
","
www.html.it
",
"
www.html.it
","
www.html.it
","
www.html.it
","
www.html.it
")
var MenuLength=menuwidth*voci.length+2*voci.length-18;
var
BrowserWidth=nn||op?window.innerWidth:N6?document.width:document.body.client
Width;
var leftmargin=parseInt((BrowserWidth-MenuLength)/2);
 document.writeln("<DIV ID='home'
STYLE='position:absolute;top:"+topmargin+";left:"+eval(leftmargin-28)+";widt
h:16;height:17;background-image:url(\"/img/tabhome.gif\");cursor:hand'
onMouseOver=homekeylayer.visibility='visible'
onMouseOut=homekeylayer.visibility='hidden'>&nbsp;</DIV>");
 for (i in tabs){
  document.writeln("<DIV ID='top"+tabs[i]+"'
STYLE='position:absolute;top:"+topmargin+";left:"+eval(leftmargin+i*menuwidt
h+5*i)+";width:140;height:17;background-image:url(\"/img/tab.gif\");cursor:h
and' onMouseOver=menus["+i+"].visibility='visible'
onMouseOut=menus["+i+"].visibility='hidden'>&nbsp;&nbsp;&nbsp;&nbsp;"+tabs[i
]+"</DIV>");
  document.writeln("<DIV ID='menu"+i+"'
STYLE='position:absolute;top:"+eval(16+topmargin)+";left:"+eval(leftmargin+i
*menuwidth+5*i)+";width:140;height:"+eval(129+menuheights[i])+";background-i
mage:url(\"/img/"+tabs[i].toLowerCase()+"sfondo.gif\");visibility:hidden;z-i
ndex:10' onMouseOver=menus["+i+"].visibility='visible'
onMouseOut=menus["+i+"].visibility='hidden'>");
  for (j in voci[i])
   document.writeln("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
HREF='"+links[i][j]+"'>"+voci[i][j]+"</A> <BR>")
  document.writeln(" <BR></DIV>")
  }
 document.writeln("<DIV ID='homekey'
STYLE='position:absolute;top:"+topmargin+";left:"+eval(leftmargin-28)+";widt
h:65;height:17;background-image:url(\"/img/keyhome.gif\");cursor:hand;visibi
lity:hidden;z-index:10' CLASS='menuIEb'
onMouseOver=homekeylayer.visibility='visible'
onMouseOut=homekeylayer.visibility='hidden'><A HREF='/' CLASS='menuIEb'><IMG
BORDER=0 SRC=/img/keyhome.gif></A></DIV>");
 N6?setTimeout("LeggiLivelli()",50):LeggiLivelli();
function LeggiLivelli()
 {
 for (i in tabs)
N6?menus[i]=document.getElementById('menu'+i).style:menus[i]=eval(document.a
ll["menu"+i].style);
N6?homekeylayer=document.getElementById('homekey').style:homekeylayer=eval(d
ocument.all.homekey.style);
}
//-->
</SCRIPT>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
 <TR>
  <TD><br><br><br>
   <select>
<option>provaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovapro
vaprovaprovaprovaprovaprovaprova</option>
   </select>
  </TD>
 </TR>
</TABLE>
</BODY>
</HTML>

 E' per caso un BUG di Explorer??
E' un bug di tutti i browser: i campi dei form "bucano i livelli", non 
puoi farci niente.
p.s.
Ci ho messo dei giorni a farlo crossbrowser... che tristezza :-(
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

puoi farci niente.
Con Mozilla funziona perfettamente, tanto per confermare la sua 
superiorita` sugli altri... 8-)
Ecco il codice che ho usato per il test:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="it">
<head>
 <meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1">
 <title>Test: Layer sopra un form</title>
 <style type="text/css">
<!--
#l
{
 position:absolute;
 top:0;
 left:0;
 background-color:red;
 color:white;
}
-->
 </style>
</head>
<body>
<form>
<input name="b" type="button"><br>
<input name="t" type="text"><br>
<select name="s">
<option>Ciao</option>
</select>
</form>
<div id="l">
Salve,<br>
 sono un layer che dovrebbe<br>
 coprire i campi del form
</div>
</body>
</html>
-- 
A risentirci
\  Davide G. Borin
\\ !!Scudo anti-spam attivo!! Togliere le x e "eliminami" dall'indirizzo
\\\_____________________________________________________________________

 superiorita` sugli altri... 8-)
Mozilla/NN6.x gestisce internamente i vari campi form (infatti sono 
"mediamente" piu' lenti nel repainting proprio perche' indipendenti 
dalla piattaforma), quindi sono windowless.
In ogni caso, anche Mozilla (o, quanto meno il parente NN6.x) "cade" di 
fronte all'iframe..
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"Quanti angeli danzano sulla punta di uno spillo?"