Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
problema funciones javascript
Enviado por Tricky22 el día 21 de febrero de 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
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);