Duvida - Document.Write()

Outrunner

Banido
Boas eu preciso que depois de clicar num botão a pagina me execute um script em java que acaba com um document.write(), o problema e que p script me está a escrever numa nova página e eu queria que escrevesse num ponto especifico da página em que está a correr. Alguém tem ideias?
 
não é java, e sim javascript. são coisas diferentes

se não me engano a função write substitui o que está escrito em determinado local.
por exemplo, se fizeres document.form.write(), o script substitui todo o conteudo dessa form, ou seja ao fazeres document.write() estás a substituir o documento todo.

por isso tens que "navegar" até á parte especifica em que queres escrever, usando por exemplo o getElementById. exemplo:

document.getElementById('a_minha_div').write();

isto procura o objecto com o id "a_minha_div" e executa a função write dentro do mesmo
 
O código é o seguinte:

function mcalendario()
{
cont=0;
data= new Date();
data.setFullYear(escolhec.anoesc.value, escolhec.mesesc.value, 1);
diainicio=data.getDay();
diai=ndsl[data.getDay()];
nDias=diasm[escolhec.mesesc.value];
codigo='<table border="1">';
codigo=codigo+'<tr>';
if (escolhec.anoesc/4 - parseInt(escolhec.anoesc/4) != 0)
{
diasm = new Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
}
for (x=0; x<7; x++)
{
codigo=codigo+'<td>'+ndsl[x]+'</td>';
}
codigo=codigo+'</tr>';
for (x=0; x<7; x++)
{
if (diai==ndsl[x]) break;
else
codigo=codigo+'<tr>';
}
for (w=0; w<diainicio; w++)
{
codigo=codigo+'<td></td>';
cont++;
}
x=x+cont-2;
for (y=1; y<=nDias; y++)
{
codigo=codigo+'<td>'+y+'</td>';
if (x==6)
{
x=0;
codigo=codigo+'</tr><tr>';
}
else
x++;
}
codigo=codigo+'</table>';
document.getElementById('calendario').write(codigo);
}


<table id="calendario">
</table>
 
Supondo que o erro e' o mesmo de em cima (obj ñ suporta propriedade bla bla), podes tar a executar o javascript antes do elemento ter sido criado.

Exemplo:
Código:
<body>
   <script>document.getElementById('abc').innerHTML = 'def';</script>
   <div id="abc"></div>
</body>

Se for o caso tens de o por a chamar o script depois do elemento ter sido criado, ou entao metes no <body onLoad="mcalendario();"> (significa que so' chama a função depois da pagina ter sido totalmente aberta, i.e. todos os elementos criados)
 
Back
Topo