problema funciones javascript

Tricky22
23 de Febrero del 2006
Hola!!tengo un peke帽o problema al llamar recursivamente a funciones de javascript. Se trata simplemente de una p谩gina que muestra un calendario. Os pongo el siguiente c贸digo de prueba para que veais mi problema. No tiene nada que ver con el calendario por eso os adjunto el c贸digo con lo importante.
<html>
<head><title>Calendario</title>
<script language="javascript">
function calendario(n)
{
n++
document.write("<table>")
document.write(" <tr>")
document.write(" <td><a href='#' onclick= calendario()>Anterior</a><strong>Prueba " + n + "</strong><a href='#' onclick= calendario(" + n + ")>Siguiente</a></td>")
document.write(" </tr>")
document.write(" <tr>")
document.write(" <td>Hola</td>")
document.write(" <td>Caracola</td>")
document.write(" </tr>")
document.write("</table>")
}
</script>
</head>
<body>
<script language="javascript">
calendario(1)
</script>
</body></html>
Cuando se carga la p谩gina no pasa nada malo, y cuando apreto en "siguiente" o "anterior" por primera vez, tampoco. Pero a la que vuelvo a apretar en "Siguiente" o "anterior" me da un error de p谩gina y se queda colgado. 驴驴Porque puede ser??
Muchas Gracias!!Saludos!
Tricky

Drocher
23 de Febrero del 2006
Buenas tardes,
el problema que tienes es que al llamar la primera vez la funci贸n, desaparece dicha funci贸n del c贸digo de la p谩gina (mira el c贸digo fuente).
Prueba con esto a ver si te sirve.

<html>
<head><title>Calendario</title>
<script language="javascript">
function calendario(n)
{
n++
var objecto= document.getElementById('PruebaCalendario');
objecto.innerHTML='';
calContenido = "<table><tr><td><a href='#' onclick= calendario()>Anterior</a><strong>Prueba " + n + "</strong><a href='#' onclick= calendario(" + n + ")>Siguiente</a></td></tr><tr><td>Hola</td><td>Caracola</td></tr></table>";
objecto.insertAdjacentHTML("afterBegin",calContenido);

}
</script>
</head>
<body>
<P id='PruebaCalendario'>
<table>
<tr>
<td><a href='#' onclick= calendario()>Anterior</a><strong>Prueba 1</strong><a href='#' onclick= calendario(1)>Siguiente</a></td>
</tr>
<tr>
<td>Hola</td>
<td>Caracola</td>
</tr>
</table>
</P>
</body>
</html>


Un saludo