
La inclusión de código en páginas web para su ejecución por parte del navegador tiene ciertas limitaciones:
- Cuando ejecutas código
PHP
en un servidor, es normalmente el programador el que tiene el control sobre el entorno de ejecución. Al cliente llegan únicamente etiquetas en lenguajeHTML
oXHTML
. Sin embargo, cuando programas código para que se ejecute en un cliente web, no tienes siquiera la certeza de que el navegador del usuario soporte la ejecución del código que recibe. Existen ciertos sistemas, como dispositivos móviles o navegadores integrados en hardware específico, que no permiten la ejecución de código de cliente. - El código que se ejecuta en el navegador está normalmente limitado a ser ejecutado en un entorno controlado, que no permite, por ejemplo, la lectura o escritura de ficheros en el ordenador del usuario. De esta forma se restringen los efectos negativos que pueda causar un guion y se favorece la confianza del usuario en este tipo de código.
Pese a estas limitaciones, la ejecución de código en el navegador encaja perfectamente con cierto tipo de tareas como:
- Comprobar y/o procesar los datos que introduce el usuario en los formularios, como paso previo a su envío al servidor web.
- Gestionar diferentes marcos y/o ventanas del navegador.
- Modificar de forma dinámica los elementos que componen la página web, ajustando sus propiedades o estilos en respuesta a la interacción del usuario.
El código JavaScript
de una página se puede ejecutar en respuesta a eventos generados por el navegador. Por ejemplo, utilizando el evento onsubmit
podemos llamar a una función validar_email
para validar una dirección de correo introducida por el usuario cuando se intenta enviar el formulario:
<form action="usuario.php" method="get" name="datos_usuario" onsubmit="return validar_email()">
<input type="text" id="email" />
</form>
Para la función que realiza la validación básica de una dirección de email
puedes utilizar, por ejemplo, el siguiente código:
function validar_email() {
valor = document.getElementById("email").value;
pos_arroba = valor.indexOf("@");
pos_punto = valor.lastIndexOf(".");
if (pos_arroba < 1 || pos_punto < pos_arroba+2 || pos_punto+2>=valor.length) {
alert('Dirección de correo no válida.');
return false;
}
return true;
}