Newsgroup: it.comp.lang.javascript
Titolo: allineamento

Ciao a tutti,
ho un problema con un javascript di cui non riesco a trovare
l'equivalente per Explorer.
Devo allineare 2 tabelle. Le colonne della tabella1 devono essere
ridimensionate come le colonne della tabella2.
function allineaColonne(docValori,docIntestazione,id1,id2) {
var browser=navigator.appName;
    if(browser=="Microsoft Internet Explorer"){
???????
    }else{
    alert("1-"+docValori.getElementById(id1).clientWidth);
        var valori = docValori.getElementById(id1);
        var intestazione = docIntestazione.getElementById(id2);
        intestazione.style.width=valori.clientWidth+"px";
        valori.style.width=intestazione.style.width+"px";
    }
}
Come faccio per Explorer?
Grazie
Stefania

 Come faccio per Explorer?
hai provato nello stesso modo che per "gli altri"? (e hai provato p.e. con
Opera cosa succede?)
Puoi postare un breve esempio funzionante con firefox?
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

 Puoi postare un breve esempio funzionante con firefox?
Questo è funzionante sia con Firefox che con Safari ma naturalmente a
me serve funzionante per Explorer :-(
<script>
function allineaColonne(id1,id2) {
    var browser=navigator.appName;
        if(browser=="Microsoft Internet Explorer"){
        }else{
            var valori = document.getElementById(id1);
            var intestazione = document.getElementById(id2);
            intestazione.style.width=valori.clientWidth+"px";
            valori.style.width=intestazione.style.width+"px";
        }
    }
<table>
<tr>
    <td id='codiceAgenzia1' >
    <td id='xxx1' >
    <td id='yyy1' >
</tr>
</table>
<table>
<tr>
    <td id='codiceAgenzia'>
    <td id='xxx' >
    <td id='yyy' >
</tr>
</table>
<script>
 
allineaColonne(document,document,'codiceAgenzia','codiceAgenzia1')
    allineaColonne(document,document,'xxx','xxx1')
    allineaColonne(document,document,'yyy','yyy1')
</script>

 allineaColonne(document,document,'codiceAgenzia','codiceAgenzia1')
?
qua chiami allineaColonne (che come abbiamo visto accetta 2 parametri) con
4 parametri, e i primi 2 sono l'ggetto document ... non può non dare
errore, nella function, getElementById ...
Non è che dici che firefox non segnala errori perché, a differenza di IE,
non compaiono errori a video, vero? (conosci la console javascript di
firefox?) Perché se copio il tuo esempio in firefox l'errore è chiaro:
"intestazione is null" (in quanto fa un getElementById di document ...)
-- 
"Capivamo di essere tanti
 capivamo di essere forti,
 il problema era solamente
 come farlo capire ai morti."
									    C.L.

 "intestazione is null" (in quanto fa un getElementById di document ...)
su firefox e safari le tabelle vengono perfettamente allineate.
p.s. la prima tabella è per le intestazioni di colonna, la seconda
tabella è dentro un div che ha la barra di scorrimento (<div
class="text"   style="height: 400px; width: 100%; overflow-y:scroll;
margin:0px">) per far visualizzare i dati... mi serve per questo...


 su firefox e safari le tabelle vengono perfettamente allineate.
purtroppo col tuo esempio non si sa: le tabelle non contengono dati, quindi
non si vede nulla a video.
Posta un semplice esempio funzionante (anche se hai parti php basta
ripulire il tutto, oppure prendere l'html risultante e ripulirlo)
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.


così in firefox 2 e IE 7 funziona, non dovrebbe dare problemi neanche
con il 6 comunque devi provarlo, ciao.
<html>
<head>
<script language="javascript">
function allineaColonne(id1,id2) {
   var NS = (navigator.appName=="Netscape")?true:false;
   w = (NS)?window.innerWidth:document.body.clientWidth;
   document.getElementById(id1).style.width=w*20/100;
   document.getElementById(id2).style.width=w*20/100;
}
</script>
</head>
<body>
<table border="1">
<tr>
    <td id='codiceAgenzia1'>pp</td>
    <td id='xxx1' >pppppppppppppppppppppppp</td>
    <td id='yyy1' >ppppppppppppppppppppppppp</td>
</tr>
</table>
<table border="1">
<tr>
    <td id='codiceAgenzia'>f</td>
    <td id='xxx' >f</td>
    <td id='yyy' >f</td>
</tr>
</table>
<script language="javascript">
	allineaColonne('codiceAgenzia','codiceAgenzia1');
        allineaColonne('xxx','xxx1');
        allineaColonne('yyy','yyy1');
</script>
</body>
</html>