Newsgroup: it.comp.lang.javascript
Titolo: Javascript e Layers ... NON TROVO L'ERRORE!!!! HELP ME !!!!

QUalcuno riesce a capire quale errore ci sia nella funzione?
NOn riesco a capire per quel modo il tag DIV venga scritto due volte
!!! (e enanche perche' "STYLE" ripetuto, divenga "TTYLE")
La chicca e' che facendo un reload della pagina lo script funziona su
Net e IE per PC, ma NON per Net Linux :-(((
Grazie per l'aiuto!
---------------------------------------------------------------------
<HTML>
<HEAD>
	<TITLE>prova</TITLE>
<SCRIPT LANGUAGE="javascript">
<!--
function design (larghezza,altezza) {
    if (navigator.appName == 'Netscape') {
        screenWidth = window.innerWidth;
        screenHeight = window.innerHeight;
    }
    else {
        screenWidth = document.body.clientWidth + 18;
        screenHeight = document.body.clientHeight + 18;
    }
            layer_left = ((screenWidth-760)/2)+larghezza;
            layer_top = ((screenHeight-416)/2)+altezza;
            document.write('<DIV ID=\"background\"
STYLE=\"position:absolute; left:'+layer_left+'px; top:'+layer_top+'px;
width:760px; height:416px; z-index:1; visibility: visible\">')
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINHEIGHT="0"
MARGINWIDTH="0">
<!-- BACKGROUND -->
<SCRIPT LANGUAGE="javascript">
design (0,0)
</SCRIPT>
  <TABLE WIDTH="760" HEIGHT="416" BGCOLOR="#000000" CELLSPACING="0"
CELLPADDING="0" BORDER="0">
    <TR>
      <TD>&nbsp;</TD>
    </TR>
 </TABLE>
</DIV>
</BODY>
</HTML>
                       ____     ____
____T_o_M_m_A_s_O____  |  | ___ |__|
                   |___|__|_| |_|  |_|-|___C_o_R_a_'____
 
t.c...@spammer.crepate.iam.it

Ciao,
hai scelto un metodo complesso...puoi
anche solo settare le dimensioni con
gli script, e far scrivere il div dall'html
document.write('<DIV ID=background '+
'STYLE="position:absolute; left:'+layer_left+'px;
top:'+layer_top+'px;
width:760px; height:416px; z-index:1; visibility:
visible">');
document.close();
--
--
Bye
Ro<*¿*>berto


wrote:

Cioe'? :)
Ho provato ad aggiungere il document.close ... che io non avevo messo
ma nel resto quello che scrivi e' uguale alla funzione che usavo gia'
... mmm
Alla fine, come risultato, ho sempre la solita:
<DIV ID="background" STYLE="position:absolute; left:8px; top:10px;
width:760px; height:416px; z-index:1; visibility: visible"><DIV
ID="background" TTYLE="position:absolute; left:8px; top:10px;
width:760px; height:416px; z-index:1; visibility: visible">
Ovvero il <DIV ... > viene scritto doppio. Chissa' poi perche' la
seconda volta "STYLE" diventa "TTYLE". Non riesco proprio a
capacitarmene ... ?__?
Ti riporto l'esempio come e' ora, grazie infinite per i suggerimenti
!!!
<HTML>
<HEAD>
	<TITLE>BT Helmets</TITLE>
    <META HTTP-EQUIV="KEYWORDS"
CONTENT="helmets,dynamic,BT,motorcycle,moto">
    <META HTTP-EQUIV="DESCRIPTION" CONTENT="BT Helmets - Hight
performance racing products">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<SCRIPT LANGUAGE="javascript">
<!--
// Posiziona i livelli
function design (larghezza,altezza) {
    if (navigator.appName == 'Netscape') {
        screenWidth = window.innerWidth;
        screenHeight = window.innerHeight;
    }
    else {
        screenWidth = document.body.clientWidth + 18;
        screenHeight = document.body.clientHeight + 18;
    }
            layer_left = ((screenWidth-760)/2)+larghezza;
            layer_top = ((screenHeight-416)/2)+altezza;
            document.write('<DIV ID="background"
STYLE="position:absolute; left:'+layer_left+'px; top:'+layer_top+'px;
width:760px; height:416px; z-index:1; visibility: visible">');
            document.close();
}


<SCRIPT LANGUAGE="javascript">
<!--
// Posiziona i livelli
function design (larghezza,altezza) {
screenWidth=(document.layers?innerWidth:document.body.clientWidth + 18);
screenHeight=(document.layers?innerHeight:document.body.clientHeight + 18);
lay=(document.layers?document.layers:document.all)['background'];
(document.all?lay.style:lay).top=((screenHeight-416)/2)+altezza;
(document.all?lay.style:lay).left=((screenWidth-760)/2)+larghezza;
(document.all?lay.style:lay).left=((screenWidth-760)/2)+larghezza;
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINHEIGHT="0"
MARGINWIDTH="0">
<!-- BACKGROUND -->
<div id="background" STYLE="position:absolute">
  <TABLE WIDTH="760" HEIGHT="416" BGCOLOR="#000000" CELLSPACING="0"
CELLPADDING="0" BORDER="0">
    <TR>
      <TD>&nbsp;</TD>
    </TR>
</TABLE>
</DIV>
<SCRIPT LANGUAGE="javascript">
 design (0,0)
 </SCRIPT>
</BODY>
</HTML>


}
Ma in questo modo non vengono disegnati e , solo dopo, allineati?
Con una semplice tabella vuota la cosa quasi non si vede, ma in una
pagina con piu' livelli, carichi di immagini o testo, al caricamento
della pagina si vede tutto spostarsi :)
E' per questo che ero passato da una funzione simile a questa a quella
che mi scriveva direttamente il <DIV> del caso ...
Esistono altre soluzioni?


eventualmente puoi renderlo visibile
solo dopo che č stato ridimensionato:
(document.all?lay.style:lay).visibility="visible";
--
Bye
Ro<*ż*>berto