Antes de poner la duda, también quiero indicar que llevo muy poco con javascript, llevare como unas dos semanas, ya que he empezado a darlo en el ciclo formativo que estudio y hemos empezado por lo básico pero yo necesito para dentro de unos días hacer una cosa y para ello con lo poco que hemos dado me he apañado a medias.
Mi problema es el siguiente, quiero crear un script para mi blog, de forma que en la entrada del blog en la que deseo insertar el script mediante una serie de alerts, prompt etc. Pida una clave en tres partes (en el codigo se ve mejor) de forma que si insertas bien las 3 partes de la clave se muestre un texto que de otra forma no se mostraria... Es decir, si aciertas y pasas la prueba a parte de la entrada normal (body) se veria un document.write ("Texto adicional si has pasado la prueba") y a continuación el body.
Lo conseguí pero de forma que se cargue solo automáticamente porque no he dado nada de llamar a funciones o crear botones, esto supone un problema porque si cargas la página principal del blog, salen las entradas mas recientes, todo su codigo, entonces si quieres leer una entrada mas vieja o mas nueva que la que tiene el script, automaticamente se carga el script y te pregunta si quieres intentar hacer la prueba.
Por lo que busque e intente aprender a crear funciones, llamarlas, eventos, crear botones con javascript. Y conseguí que el script cargue si pulsas un boton ¿Cuál es el problema ahora? que el document.write a diferencia que antes, carga en una página "nueva" totalmente en blanco, un codigo limpio con todo lo que le metía perdiendo el formato del blog que sin boton, cargaba.
Es decir sin boton quedaba:
"Esta solo se ve si has acertado la clave"
"Esta parte es del body de la página"
Con el formato del blog y ahora solo queda en:
"Esto solo se ve si has acertado la clave"
Sin formato ni nada.
Aporto los dos códigos, con boton y sin boton, para que se vea la diferencia mas clara, siento que el mensaje quede tan largo pero no he encontrado la opción de [spoiler] para dejar el código oculto y que quede reducido el post.
Nota: La clave viene en los comentarios, la primera parte es 1, la segunda 2 y la tercera 3
Con boton:
Código Javascript:
Ver original
<html> <head> <title>Prueba para blog</title> </head> <body> <script type="text/javascript" language="JavaScript"> var clavep1; var clavep2; var clavep3; var insertarclave1; var insertarclave2; var insertarclave3; var boton; var confirmar; var salir; //Las claves son 1, 2 y 3// function script () { alert ("Adivina la claves y descubre el texto a parte"); do { clavep1 = "1"; insertarclave1 = prompt ("Introduce clave 1"); if (insertarclave1 != clavep1){ salir = confirm ("Incorrecto... Te rindes?"); if (salir == true) {break;} } } while (insertarclave1 != clavep1); if (insertarclave1 == clavep1) { alert ("La primera parte es correcta, ahora la segunda"); do { clavep2 = "2"; insertarclave2 = prompt ("Introduce clave 2"); if (insertarclave2 != clavep2){ salir = confirm ("Incorrecto... Te rindes?"); if (salir == true) {break;} } } while (insertarclave2 != clavep2); if (insertarclave2 == clavep2) { alert ("La segunda parte de la clave es correcta, ahora la tercera"); do { clavep3 = "3"; insertarclave3 = prompt ("La tercera arte es correcta"); if (insertarclave3 != clavep3) { salir = confirm ("Incorrecto, ¿Te rindes?"); if (salir == true) {break;} } } while (insertarclave3 != clavep3); // Llegados a este punto, consigo que pida las 3 partes de la clave, si no acierta saldrá un mensaje de error con la opción de salir. // if (insertarclave3 == clavep3) { // El contenido de este IF es lo que se empezará a ejecutar si se ha acertado la clave. // alert ("La clave es; " + clavep1 + " " + clavep2 + " " + clavep3); alert ("HAs pasado la prueba!!"); document.write ("Como has acertado, puedes leer esto. </br>"); } } } } if (boton.addEventListener) { boton.addEventListener('click', script, false); } else { boton.attachEvent('onclick', script); } </script> <form name="formulario" id="formulario" method="GET"> <input type="button" name="Boton1" value="Pulsa aqui" OnClick="script(this);"><br><br> </form> <h1>Encabezado en body</h1> </body> </html>
Sin boton:
Código Javascript:
Ver original
<html> <head> <title>Prueba para blog</title> </head> <body> <script type="text/javascript" language="JavaScript"> var clavep1; var clavep2; var clavep3; var insertarclave1; var insertarclave2; var insertarclave3; var boton; var confirmar; var salir; //Las claves son 1, 2 y 3// alert ("Adivina la claves y descubre el texto a parte"); do { clavep1 = "1"; insertarclave1 = prompt ("Introduce clave 1"); if (insertarclave1 != clavep1){ salir = confirm ("Incorrecto... Te rindes?"); if (salir == true) {break;} } } while (insertarclave1 != clavep1); if (insertarclave1 == clavep1) { alert ("La primera parte es correcta, ahora la segunda"); do { clavep2 = "2"; insertarclave2 = prompt ("Introduce clave 2"); if (insertarclave2 != clavep2){ salir = confirm ("Incorrecto... Te rindes?"); if (salir == true) {break;} } } while (insertarclave2 != clavep2); if (insertarclave2 == clavep2) { alert ("La segunda parte de la clave es correcta, ahora la tercera"); do { clavep3 = "3"; insertarclave3 = prompt ("La tercera arte es correcta"); if (insertarclave3 != clavep3) { salir = confirm ("Incorrecto, ¿Te rindes?"); if (salir == true) {break;} } } while (insertarclave3 != clavep3); // Llegados a este punto, consigo que pida las 3 partes de la clave, si no acierta saldrá un mensaje de error con la opción de salir. // if (insertarclave3 == clavep3) { // El contenido de este IF es lo que se empezará a ejecutar si se ha acertado la clave. // alert ("La clave es; " + clavep1 + " " + clavep2 + " " + clavep3); alert ("HAs pasado la prueba!!"); document.write ("Como has acertado, puedes leer esto. </br>"); } } } </script> <h1>Encabezado en body</h2> </body> </html>
P.D: No pido ayuda, de momento a mi profesor porque creo que me mandaría a... a hacer puñetas (no se si esta permitido decir palabras malsonantes xD) porque siempre me he complicado bastante en su asignatura intentando hacer cosas mas complejas de las que hemos dado xDD