CAPTURAR EVENTOS DE TECLADO JAVASCRIPT. TECLA PULSADA. FROMCHARCODE. KEYCODE, WICH. (CU01161E)

Documentos relacionados
JERARQUÍA DE OBJETOS JAVASCRIPT. FORMS, ELEMENTS, IMAGES, LINKS. NAVIGATOR: USERAGENT, GEOLOCATION, ONLINE. (CU01170E)

VARIABLES STRING JAVASCRIPT. DEBEN USARSE COMILLAS SIMPLES O DOBLES? CARACTERES DE ESCAPE \N \T.LENGTH (CU01114E)

LÍNEAS SEPARADORAS. ETIQUETA <HR>. COMENTARIOS EN HTML. ATRIBUTOS SIZE, WIDTH, NOSHADE (DEPRECATED). EJEMPLOS (CU00716B)

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

Estructura y partes del teclado

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

Editor de código Visual Basic. Lista de miembros automática, sugerencias de sintaxis, autocompletado y otras opciones. (CU00313A)

EL TECLADO Y SUS PARTES

C.E.PER. Pintor Zuloaga MANEJO DEL TECLADO

EVENTOS (II) : MODELO BÁSICO DE EVENTOS

(Tecla Shift pequeña) ó (Tecla Shift grande) Estas teclas, también tienen la función de poner la letra en Mayúsculas.

HIPERVÍNCULOS, LINKS O ENLACES HTML. ETIQUETA <A>. ATRIBUTOS HREF, TARGET Y TITLE. TIPOS DE HIPERVÍNCULOS. ANCLAS O ANCHORS (CU00717B)

Unidad 5. Tablas. La celda que se encuentra en la fila 1 columna 2 tiene el siguiente contenido: 2º Celda

Creación de un juego de tenis en clase de informática mediante la utilización de Visual Basic.

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

OPERADORES LÓGICOS JAVASCRIPT. EJEMPLOS. RELACIONALES MAYOR, MENOR, IGUAL, DISTINTO. AND, OR, NOT. CORTO- CIRCUITO (CU01117E)

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

ENCABEZADOS HTML <h1> A <h6>, PÁRRAFOS <p>, APLICAR ESTILOS Y ETIQUETA <pre> DE TEXTO PREFORMATEADO. EJEMPLOS (CU00715B)

FACULTAD DE INGENIERÍA

UNIDAD 1. writer PRIMEROS PASOS. CURSO: LibreOffice

LEER Y ESCRIBIR ARCHIVOS DE TEXTO CON PHP. FUNCIONES FOPEN (MODOS), FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00836B)

Cuando no está abierto ningún menú, las teclas activas para poder desplazarse a través de la hoja son:

La barra de fórmulas Nos muestra el contenido de la celda activa, es decir, la casilla donde estamos situados.

CONCEPTO FLOAT CSS. NONE, LEFT, RIGHT Y CENTRAR?. COLOCAR TEXTO ALREDEDOR DE UNA IMAGEN. EJEMPLOS DE POSICIONAMIENTO FLOTANTE (CU01034D)

TECH TUTOR. Aspectos básicos de la computadora. kcls.org/techtutor. Aspectos básicos de la computadora Rev 12/2014

API GEOLOCATION Y API GOOGLE MAPS JAVASCRIPT. EJEMPLOS. INSERTAR MAPAS INTERACTIVOS, SATÉLITE, ETC. EN WEBS. EFECTOS. (CU01197E)

EJEMPLO DE CONSULTA PHP MYSQL. SELECT. USO DEL BUCLE WHILE CON MYSQLI_FETCH_ARRAY PARA EXTRAER LOS RESULTADOS DE UNA CONSULTA.

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

JAV JA A V S A C S R C I R P I T

Qué es un Procesador de textos? Iniciar Word. Microsoft Word Microsoft Office 2010

El Teclado. Para ver como funciona el teclado, abriremos el programa Bloc de notas, que es una aplicación que se usa para escribir textos sencillos.

INTRODUCCIÓN DE DATOS EN LA HOJA DE CÁLCULO

Manual de turbo pascal

UNIDAD 4. MODIFICAR TABLAS DE DATOS

Temario Programación Web para Web

Tutorial de MuseScore, editor de partituras Primeros pasos

Selección de texto. Seleccionar texto es elegir para hacer algo con ese texto como por ejemplo cambiar color de letra, cambiar tamaño de letra, etc.

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

FACULTAD DE CIENCIAS DE LA SALUD PROGRAMA DE ENFERMERÍA Informática semestre III 2013 CURSO EPI-INFO

Seleccionamos el programa Excel. Nos aparece la pantalla del programa

Tema 1. Introducción a OpenOffice Writer

PHP: Lenguaje de programación

Tecleando. TECLADO: uso de mayúsculas y minúsculas, espaciador y borrar.

Tema 3. Introducción al programa Excel

Visual Basic: procedimientos Sub y funciones Function. Tipos de parámetros y tipos de retorno. Ejemplos (CU00340A)

TECLADO VIRTUAL PARA PERSONAS CON DISCAPACIDAD MOTORA

Hacemos clic con el ratón para situar el cursor donde queremos que aparezca la tabla. Nos vamos a la barra de Menús, Insertar, Tabla

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

TUTORIAL SOBRE HOJAS DE CALCULO

CONSEJOS SOBRE WORD 2012

Programación Hipermedia I

CREAR TABLAS EN HTML. ATRIBUTOS COLSPAN Y ROWSPAN. UNIFICAR CELDAS EN HORIZONTAL Y VERTICAL. CAPTION O TÍTULO (CU00719B)

EFECTO SOMBRA CSS CON BOX-SHADOW. SOMBRA INTERIOR INSET. BLUR O DIFUMINADO, SPREAD. EJEMPLOS Y EJERCICIOS RESUELTOS (CU01059D)

WorkBook Windows 7. WorkBook

EJERCICIOS PHP II FORMULARIOS

Utilización de Funciones en OpenOffice.org Calc

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

ATAJOS DEL TECLADO EN WINDOWS

PROPIEDAD POSITION CSS: STATIC, RELATIVE, ABSOLUTE, FIXED. TOP, RIGHT, BOTTOM, LEFT. EJEMPLOS EJERCICIOS DE POSICIONAMIENTO RESUELTOS (CU01032D)

Programación en Visual Basic Ricardo Rodríguez García

MICROSOFT EXCEL 2007

Fundamentos de Word. Identificar los elementos de la interfaz de usuario que puede usar para realizar las tareas básicas.

APUNTE TABLAS MICROSOFT WORD 2003

TUTORIAL SOBRE EXPRESIONES REGULARES EN JAVASCRIPT PARA VALIDACIÓN DE CAMPOS EN FORMULARIOS HTML:

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

CARACTERES PRESENTES EN LA FUENTE "FENICIO" Diseño: Juan-José Marcos. Plasencia. Cáceres. 2011

Curso de. HTML 5 y CSS 3. Por: Ing. Ubaldo Acosta.

Unidad IV: Programación del lado del cliente

TRABAJO RECUPERACION

GUIA Nº 3 MASCARAS GRAFICOS

Figura 17 Barra de iconos

CREACIÓN Y MODIFICACIÓN DE TABLAS

Módulo Conversor de Superficies

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

multiplicar Capítulo 15 Tablas de Práctica 1 Proyecto guiado Vamos a construir, paso a paso, el proyecto de las tablas de multiplicar.

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

Tecnología de la Información y la Comunicación: "Procesador de textos" 1999

Actualización de una libreta de cómputos en Microsoft Excel Parte I

UNIDAD 1 GENERALIDADES HTML

Ejercicio: Creación de Bosquejo en Word

Guía para la instalación de discos duro SATA y Configuración RAID

9.1. Insertar filas en una hoja

Escuela Normal Superior Río de Oro (Cesar)

DISEÑO WEB ADOBE DREAMWEAVER CS3

POWER POINT Tema 1. Para salir de PowerPoint (suponiendo que se tiene abierto) puede:

SOLUCION EJERCICIOS VALIDACION DE FORMULARIOS

Microsoft Office Word

FUNCIONES EN EXCEL III

LOS CIEN ATAJOS DE TECLADO

C. E. I. P. LAS VIÑAS. Bollullos del Cdo. (Huelva) Centro TIC/DIG. Las ventanas

Elaboración de Documentos en Procesadores de Textos

Diseño de página y configurar un documento

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

La primera vez que selecciona el nombre de usuario el programa pide introducir la nueva clave.

JavaScript toma su sintaxis de los lenguajes de programación más conocidos, fundamentalmente C/C++, aunque también algo de Pascal.

Curso de Diseño web. Juan Carlos Hernández Pérez

Ficha de Aprendizaje N 1

SIGNIFICADO DE DEPRECATED. ETIQUETA BODY: CUERPO DE LA PÁGINA HTML. BGCOLOR, TEXT, BACKGROUND. (CU00712B)

Hacia la Excelencia Educativa

Scripting en el cliente: Javascript. Tecnologías Web

Transcripción:

APRENDERAPROGRAMAR.COM CAPTURAR EVENTOS DE TECLADO JAVASCRIPT. TECLA PULSADA. FROMCHARCODE. KEYCODE, WICH. (CU01161E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript desde cero Fecha revisión: 2029 Resumen: Entrega nº61 del Tutorial básico JavaScript desde cero. Autor: César Krall

EVENTOS DE TECLADO E INFORMACIÓN RELACIONADA Los eventos de teclado han resultado históricamente difíciles de trabajar con JavaScript. Algunos especialistas han llamado a esto el caos de JavaScript en el manejo de eventos de teclado. Vamos a tratar de ver los aspectos clave relacionados con la gestión de eventos de teclado. Los eventos de teclado presentan especial dificultad debido a que existen diferentes juegos de caracteres, diferentes sistemas operativos, diferentes configuracion nes de teclado, teclas especiales, caracteres no visibles, caracteres que se obtienen mediante pulsación de dos teclas y por supuesto diferentes idiomas que tienen caracteres no comunes con otros idiomas. A pesar de todo, no debería ser difícil determinar qué tecla ha sido pulsada y sin embargo históricamente sí ha sido difícil, lo cual es poco entendible en una época en que la tecnología inunda nuestras vidas. Estass dificultades han provenido principalmente de la falta de acuerdo entre los fabricantes de los distintos navegadores para alcanzar una estandarización adecuada. Hoy día podemos decir que esta falta de estandarización está en vías de resolverse (por fortuna no nos enfrentamos a las incompatibilidades que existían hace tan solo unos pocos años). Hemos de tener en cuenta que existen tres eventos distintos relacionados con pulsar una tecla. Cuando pulsamos una tecla se producen tres eventos, que enunciados por orden son: keydown, keypress, keyup. Los eventos keydown y keyup podemos traducirlos como la tecla baja y la tecla sube, mientras que keypress sería la tecla es pulsada. Hay dos tipos de códigos diferentes: los códigos de teclado (que representan la tecla del teclado que ha sido pulsada, tecla física) y los códigos de caracteres (número asociado a cada carácter, según el juego de caracteres Unicode). Tener en cuenta que desde el punto de vista de qué tecla física ha sido pulsada es lo mismo escribir una a que una A, ya que en ambos casos pulsamos la misma tecla en el teclado. En cambio desde el punto de vista del carácter, a es un carácter y A es otro carácterr diferente (y cada uno tiene su código numérico diferente). Para cadaa evento de teclado las propiedades del objeto Event relacionadas con el teclado pueden tener distinto signficado, por ello hemos de atenernos a unas reglas para poder operar con seguridad. Estas reglas son recomendaciones (nuestras), no se trata de reglas de obligado cumplimiento: Regla 1: para determinar el carácter resultado de la pulsación de una tecla simple o de una combinación de teclas usaremos el evento keypress (no los eventos keydown ni keyup), determinando la tecla pulsada con la propiedad wich del objeto event. Regla 2: para determinar si ha sido pulsadaa una tecla no imprimible (como flecha de cursor, etc.), usaremoss el evento keyup, determinando la tecla pulsadaa con la propiedad keycode (código de la tecla física).

Regla 3: no intentes controlar todo lo que ocurre con el teclado (porque quizás te vuelvas loco). Controla únicamente aquello que sea necesario y útil. Tener en cuenta que hay algunas teclas no imprimibles que no generan evento keypress, sino únicamente eventos keydown y keyup. En cambio, algunas teclas no imprimibles sí generan evento keypress. RECUPERAR UN CARÁCTER A PARTIR DE SU CÓDIGO NUMÉRICO Cada carácter tiene un código numérico. Guiándonos por el juego de caracteres Unicode los códigos numéricos son 65 para la letra A (mayúscula), 66 para la letra B,, 97 para la letra a (minúscula). Teclas especiales como ENTER también tienen asignados códigos numéricos: 13 para ENTER, 37 flecha izquierda del cursor, 38 flecha arriba del cursor, 39 flecha derecha del cursor, 40 flecha derecha del cursor, etc. Para recuperar el carácter asociado a un código usaremos un método estático del objeto predefinido String, con la siguiente sintaxis: String.fromCharCode(num1, num2,..., numn); Donde num1, num2,, numn son los códigos numéricos a convertir. Si escribimos por ejemplo alert(string.fromcharcode(97,98,99)); obtendremos como resultado <<abc>> PROPIEDADES Y MÉTODOS DEL OBJETO EVENT RELACIONADOS CON TECLADO Las propiedades y métodos del objeto Event relacionados con el teclado se resumen en la siguiente tabla. Veremos su aplicación práctica en el código de ejemplo que incluimos posteriormente: Tipo Nombre Descripción aprenderaprogramar.com Propiedades relacionadas con el teclado altkey ctrlkey shiftkey charcode Contiene el valor booleano true si la tecla ALT estaba pulsada Contiene el valor booleano true si la tecla CTRL estaba pulsada Contiene el valor booleano true si la tecla SHIFT estaba pulsada Devuelve el código del carácter unicode generado por el evento keypress. Se recomienda usar wich en lugar de charcode.

Tipo Nombre Descripción aprenderaprogramar.com keycode wich Otras propiedades Otras propiedades no estandarizadas Devuelve el código de tecla pulsada para eventos keydown y keyup Devuelve el código del carácter unicode generado por el evento keypress. data, metakey altleft, ctrlleft, shiftleft, ischar EJEMPLO: TRABAJANDO CON EVENTOS DE TECLADO Escribe el siguiente código y comprueba sus resultados: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html><head><title>ejemplo aprenderaprogramar.com</title><meta charset="utf-8"> <script type="text/javascript"> var eventocontrolado = false; window.onload = function() { document.onkeypress = mostrarinformacioncaracter; document.onkeyup = mostrarinformaciontecla; } function mostrarinformacioncaracter(evobject) { var msg = ''; var elcaracter = String.fromCharCode(evObject.which); if (evobject.which!=0 && evobject.which!=13) { msg = 'Tecla pulsada: ' + elcaracter; control.innerhtml += msg + '-----------------------------<br/>'; } else { msg = 'Pulsada tecla especial'; control.innerhtml += msg + '-----------------------------<br/>';} eventocontrolado=true; } function mostrarinformaciontecla(evobject) { var msg = ''; var teclapulsada = evobject.keycode; if (teclapulsada == 20) { msg = 'Pulsado caps lock (act/des mayúsculas)';} else if (teclapulsada == 16) { msg = 'Pulsado shift';} else if (eventocontrolado == false) { msg = 'Pulsada tecla especial';} if (msg) {control.innerhtml += msg + '-----------------------------<br/>';} eventocontrolado = false; } </script> </head> <body><div id="cabecera"><h2>cursos aprenderaprogramar.com</h2><h3>ejemplo JavaScript: pulse una tecla</h3></div> <div id="control"> </div> </body></html>

El resultado esperado es que al pulsar una tecla como a ó b se muestre por pantalla Tecla pulsada: a----- ------------------------ Tecla pulsada: b-----------------------------, o que al pulsar shift se muestre Pulsado shift-- ---------------------------, o Pulsada tecla especial para otras teclas especiales. Ten en cuenta lo siguiente: Se controla si el evento ha sido detectado con keypress mediante la variable booleana eventocontrolado. Si el evento ha sido detectado con keypress, no lo tratamos con keyup (evento que tiene lugar después de keypress). De esta forma tratamos de distinguir, de forma aproximada, entre teclas especiales y normales. Podrían existir algunas divergencias entre diferentes navegadores o diferentes computadores (diferentes teclados). Este código trata de ser un ejemplo de cómo trabajar con eventos de teclado, pero puedes crear tus propios trucos para trabajar con el teclado, o usar trucos o bibliotecas creadas por otros programadores que están disponibles en internet. EJERCICIO 1 Crea un documento HTML que conste de un título h1 con el texto <<Pulsa una tecla>>, y un div central de 400 por 400 px con el borde marcado y márgenes de 100px en todas direcciones. Utiliza el evento keypress para determinar el carácter que el usuario ha escrito utilizando el teclado y haz que se muestre dentro del div con un tamaño de fuente de 250px. Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com. EJERCICIO 2 Crea un documento HTML que conste de un título h1 con el texto <<Pulsa una flecha>>, y un div central de 300 por 300 px con borde color negro, color de fondo amarillo y márgenes de 200px en todas direcciones. Inicialmente el cuadrado que define el div debe estar alineado en el centro de la ventana. Utiliza el evento keyup para determinar si el usuario pulsa una tecla del cursor, y en ese caso utilizando CSS haz que el cuadrado que define el div se desplace 20px en la dirección de flecha elegida por el usuario. Por ejemplo, si el usuario pulsa la flecha derecha, el div debe desplazarse 20 px dentro de la ventana, hacia la derecha. Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com. Próxima entrega: CU01162E Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&itemid=206