L'oggetto document rappresenta la pagina visualizzata nel browser, se e' gia' stato incontrato il tag </body> il browser considera la pagina "chiusa", pertanto un successivo write() implicitamente la riapre (cancellandone il contenuto) e ci scrive sopra.
Se invece write() viene eseguito prima che la pagina venga chiusa, scrive accodando all'attuale contenuto.
Soluzione... dipende da cosa vuoi realizzare, ovvero: la tabella deve essere visualizzata subito o a seguito della pressione di un pulsante (o altro evento) ?
in questo caso e' sufficiente mettere lo script nel punto in cui vuio venga visualizzata la tabella, ma senza la function... esempio:
ricordati di quotare il messaggio per vedere il codice come l'ho digitato...codice:... qui tutta la parte della pagina che precede la tabella ... <SCRIPT LANGUAGE="JavaScript" type="text/javascript"> document.write('<table width="50%" align="center" border>') for (i=1; i<=3; i++) { document.write('<tr>') for (j=1; j<=3; j++) { document.write('<td class="normale" onmouseover="this.className=\'selezionata\';" onmouseout="this.className=\'normale\';">'); document.write('<\/td>'); } document.write('<\/tr>') } document.write('<\/table>'); </script> ... qui il resto della pagina ...
ciao