| Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS | ||||
06/6/03 - 2) Función Javascript para copiar la fecha
Esta función debe colocar en el formulario de origen, concretamente en el campo asociado al botón pulsado, la fecha que se ha pulsado entre los días del calendario. Una vez seleccionada la fecha, además de copiarla, debe cerrar la ventana del calendario puesto que ya se utilizó para lo que se quería y ya no es necesaria hasta que se vuelva a pulsar el botón asociado a un campo fecha.
Vemos el código y a continuación ofreceremos algunas explicaciones.
<script>
function devuelveFecha(dia,mes,ano){
//Se encarga de escribir en el formulario adecuado los valores seleccionados
//también debe cerrar la ventana del calendario
var formulario_destino = '<?echo $_GET["formulario"]?>'
var campo_destino = '<?echo $_GET["nomcampo"]?>'
//meto el dia
eval ("opener.document." + formulario_destino + "." + campo_destino + ".value='" + dia + "/" + mes + "/" + ano + "'")
window.close()
}
</script>
Esta función tiene tres complicaciones fundamentales. La primera se trata de el campo donde copiar la información se encuentra en otra página web que está en otra ventana de navegador. Esto no es problema, porque sabemos acceder desde una ventana secundaria (el calendario) a la ventana que la abrió (la que contiene el formulario), a través de la variable opener, que contiene una referencia, como decíamos, a la ventana origen. Opener es como el objeto window de la ventana que abrió el popup y a raiz de dicha variable cuelga toda la jerarquía de objetos de la ventana del formulario.
| Referencia: Para dominar estos conceptos de trabajo con ventanas secundarias es interesante leer el manual Control de ventanas secundarias con Javascript. |
| Referencia: El tema de pasar variables de un lenguaje a otro lo habíamos tratado en la FAQ Pasar variables de ASP o PHP hacia Javascript o viceversa. |
| Nota: La razón de utilizar eval() está bien clara. Nosotros podemos concatenar todos los elementos necesarios para crear una sentencia Javascript, pero lo único que podríamos obtener como resultado es una variable que contuviese un código Javascript. Si queremos ejecutarlo necesitamos forzosamente de la ayuda de la función eval(). Es difícil encontrar ejemplos tan interesantes donde la utilización de eval() es crucial para resolver un problema. De todos modos, si no llegamos a entender puede ser interesante acceder al manual de Javascript II, donde hablamos de la librería de funciones Javascript y de ejemplos de las mismas, donde encontraremos otro ejemplo de uso de eval(). |
| Autoría, licencia y acciones sobre este artículo | ||||||
|
Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright. * Para consultas técnicas utilizar la lista de correo.
|
| Comentarios de los visitantes |
|
Aun no hemos recibido comentarios de este artículo.
Puedes ser el primero en enviar tu comentario. |
| Enlaces: |
| Maestrosdelweb |
Lectura recomendada Compra este libro en Agapea, la librería urgente a domicilio. |
||||||||||
Tienda DesarrolloWeb