{"id":246,"date":"2025-01-28T11:52:45","date_gmt":"2025-01-28T08:52:45","guid":{"rendered":"https:\/\/planeta21vek.ru\/elina732\/isp\/?p=246"},"modified":"2025-11-20T21:28:35","modified_gmt":"2025-11-20T18:28:35","slug":"lista-completa-de-controladores-de-eventos-html-javascript-con-ejemplos","status":"publish","type":"post","link":"https:\/\/planeta21vek.ru\/elina732\/isp\/2025\/01\/28\/lista-completa-de-controladores-de-eventos-html-javascript-con-ejemplos\/","title":{"rendered":"Lista completa de controladores de eventos HTML\/Javascript con ejemplos"},"content":{"rendered":"<p style=\"text-align: justify;\">Los controladores de eventos deben usarse de manera correcta; es recomendable no escribirlos directamente en los atributos de las etiquetas, sino instalarlos en los archivos incluidos con c\u00f3digo JavaScript. Si se utiliza la biblioteca jQuery, el nombre de los controladores debe escribirse sin el prefijo on.<\/p>\n<p><!--more--><\/p>\n<h2><span style=\"color: #008000;\">click \/ onclick<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 haga clic en un elemento; ocurre cuando se hace clic en el elemento con el bot\u00f3n izquierdo del mouse (en dispositivos con pantallas t\u00e1ctiles ocurre cuando se toca).<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/planeta21vek.ru\/elina732\/wp-content\/uploads\/2024\/11\/sobytiya251124.jpg\" \/><\/p>\n<p style=\"text-align: justify;\">Opciones de grabaci\u00f3n de ventanas emergentes<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input value=&quot;Haz clic en m\u00ed&quot; onclick=&quot;alert('\u00a1Haz clic!')&quot; type=&quot;bot\u00f3n&quot;&gt;\r\n&lt;a href=&quot;#&quot; onclick=&quot;alert('Ejemplo 1 funcion\u00f3'); return false;&quot;&gt;Ejemplo 1&lt;\/a&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Secuencia de n\u00fameros que comienzan con 1<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\n  function countRabbits() {\r\n    for(let i=1; i&lt;=3; i++) {\r\n      alert(&quot;numero de conejo &quot; + i);\r\n    }\r\n  }\r\n&lt;\/script&gt;\r\n&lt;input type=&quot;button&quot; onclick=&quot;countRabbits()&quot; value=&quot;\u00a1Cuenta conejos!&quot;&gt;\r\n&lt;input id=&quot;elem&quot; type=&quot;bot\u00f3n&quot; valor=&quot;\u00a1Presioname!&quot;&gt;\r\n&lt;gui\u00f3n&gt;\r\n  elem.onclick = funci\u00f3n() {\r\n    alerta('Gracias');\r\n  };\r\n&lt;\/script&gt;\r\n&lt;tipo de entrada=&quot;bot\u00f3n&quot; id=&quot;bot\u00f3n&quot; valor=&quot;Bot\u00f3n&quot;&gt;\r\n&lt;script&gt;\r\n  button.onclick = function() {\r\n    alert('\u041a\u043b\u0438\u043a!');\r\n  };\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Muestra \u00abPresioname\u00bb en una ventana emergente: el contenido del bot\u00f3n<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;button onclick=&quot;alert(this.innerHTML)&quot;&gt;Haz clic en m\u00ed&lt;\/button&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">M\u00faltiples controladores de eventos emergentes<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input id=&quot;elem&quot; type=&quot;bot\u00f3n&quot; valor=&quot;Haz clic en m\u00ed&quot;\/&gt;\r\n&lt;script&gt;\r\n  function handler1() {\r\n    alert('\u0421\u043f\u0430\u0441\u0438\u0431\u043e!');\r\n  };\r\n  function handler2() {\r\n    alert('\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0435\u0449\u0451 \u0440\u0430\u0437!');\r\n  }\r\n  elem.onclick = () =&gt; alert(&quot;Hola&quot;);\r\n  elem.addEventListener(&quot;clic&quot;, handler1); \/\/ \u00a1Gracias!\r\n  elem.addEventListener(&quot;clic&quot;, handler2); \/\/ \u00a1Gracias de nuevo!\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Obtener las coordenadas del mouse desde un objeto de evento<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;tipo de entrada=&quot;bot\u00f3n&quot; valor=&quot;Presioname&quot; id=&quot;elem&quot;&gt;\r\n&lt;gui\u00f3n&gt;\r\n  elem.onclick = funci\u00f3n (evento) {\r\n    \/\/ muestra el tipo de evento, el elemento y las coordenadas de clic\r\n    alert(event.type + &quot; \u043d\u0430 &quot; + event.currentTarget);\r\n    alert(&quot;Coordenadas: &quot; + event.clientX + &quot;:&quot; + event.clientY);\r\n  };\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Cambiar el fondo de un objeto<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;button&gt;Change color&lt;\/button&gt;\r\n&lt;script&gt;\r\nconst btn = document.querySelector(&quot;button&quot;);\r\nfunction random(number) {\r\n  return Math.floor(Math.random() * (number + 1));\r\n}\r\nbtn.onclick = function () {\r\n  const rndCol =\r\n    &quot;rgb(&quot; + random(255) + &quot;,&quot; + random(255) + &quot;,&quot; + random(255) + &quot;)&quot;;\r\n  document.body.style.backgroundColor = rndCol;\r\n};\r\n&lt;\/script&gt;\r\n&lt;button onclick=&quot;bgChange()&quot;&gt;Press me&lt;\/button&gt;\r\n&lt;script&gt;\r\nfunction bgChange() {\r\n  const rndCol =\r\n    &quot;rgb(&quot; + random(255) + &quot;,&quot; + random(255) + &quot;,&quot; + random(255) + &quot;)&quot;;\r\n  document.body.style.backgroundColor = rndCol;\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Cambiando el fondo de un div<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div id='myDiv'&gt;Elemento de cambio de color&lt;\/div&gt;\r\n&lt;button onclick='changeColor()'&gt;Cambiar color&lt;\/button&gt;\r\n&lt;script&gt;\r\nfunction changeColor() {\r\n  document.getElementById('myDiv').style.backgroundColor = 'red';\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Cambiar color de enlace<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\nfunction ChangeColor(Element) {\r\n\tif (Element.style.color == 'green') Element.style.color = 'red';\r\n\telse Element.style.color = 'green';\r\n\treturn false;\r\n}\r\n&lt;\/script&gt;\r\n&lt;a href=&quot;#&quot; style=&quot;color: green;&quot; onclick=&quot;return ChangeColor(this);&quot;&gt;Cambiar color&lt;\/a&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Validaci\u00f3n de formulario<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;formulario&gt;\r\n  &lt;div&gt;\r\n    &lt;label for=&quot;fname&quot;&gt;Nombre: &lt;\/label&gt;\r\n    &lt;entrada id=&quot;fname&quot; tipo=&quot;texto&quot; \/&gt;\r\n  &lt;\/div&gt;\r\n  &lt;div&gt;\r\n    &lt;label for=&quot;lname&quot;&gt;Apellido: &lt;\/label&gt;\r\n    &lt;input id=&quot;lname&quot; type=&quot;text&quot; \/&gt;\r\n  &lt;\/div&gt;\r\n  &lt;div&gt;\r\n    &lt;input id=&quot;submit&quot; type=&quot;submit&quot; \/&gt;\r\n  &lt;\/div&gt;\r\n&lt;\/form&gt;\r\n&lt;p&gt;&lt;\/p&gt;\r\n&lt;script&gt;\r\nvar form = document.querySelector(&quot;form&quot;);\r\nvar fname = document.getElementById(&quot;fname&quot;);\r\nvar lname = document.getElementById(&quot;lname&quot;);\r\nvar submit = document.getElementById(&quot;submit&quot;);\r\nvar para = document.querySelector(&quot;p&quot;);\r\n\r\nform.onsubmit = function (e) {\r\n  if (fname.value === &quot;&quot; || lname.value === &quot;&quot;) {\r\n    e.preventDefault();\r\n    para.textContent = &quot;\u00a1Ambos campos deben ser completados!&quot;;\r\n  }\r\n};\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Capture eventos de CSS en video con la funci\u00f3n stopPropagation(), que, cuando se llama en el controlador de eventos de un objeto, garantiza que el controlador se ejecute, pero el evento no burbujee m\u00e1s abajo en la cadena<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;button&gt;Display video&lt;\/button&gt;\r\n&lt;div class=&quot;hidden&quot;&gt;\r\n  &lt;video&gt;\r\n    &lt;source src=&quot;rabbit320.mp4&quot; type=&quot;video\/mp4&quot; \/&gt;\r\n    &lt;source src=&quot;rabbit320.webm&quot; type=&quot;video\/webm&quot; \/&gt;\r\n    &lt;p&gt;\r\n      Your browser doesn't support HTML5 video. Here is a\r\n      &lt;a href=&quot;rabbit320.mp4&quot;&gt;link to the video&lt;\/a&gt; instead.\r\n    &lt;\/p&gt;\r\n  &lt;\/video&gt;\r\n&lt;\/div&gt;\r\ndiv {       position: absolute;\r\n        top: 50%;\r\n        transform: translate(-50%,-50%);\r\n        ...      }\r\n.hidden {\r\n   left: -50%;\r\n  }\r\n.showing {\r\n   left: 50%;\r\n  }\r\n&lt;script&gt;\r\nvar videoBox = document.querySelector(&quot;div&quot;);\r\nvar video = document.querySelector(&quot;video&quot;);\r\nvideoBox.onclick = function () {\r\n  videoBox.setAttribute(&quot;class&quot;, &quot;hidden&quot;);\r\n};\r\nvideo.onclick = function () {\r\n  video.play();\r\n};\r\nvideo.onclick = function (e) {\r\n  e.stopPropagation();\r\n  video.play();\r\n};\r\n&lt;\/script&gt;\r\n&lt;p style=&quot;text-align: justify;&quot;&gt;Mostrar y ocultar texto&lt;\/p&gt;\r\n&lt;button onclick='toggleVisibility()'&gt;Mostrar\/Ocultar&lt;\/button&gt;\r\n&lt;div id='hiddenDiv' style='display:none'&gt;Texto oculto&lt;\/div&gt;\r\n&lt;script&gt;\r\nfunction toggleVisibility() {\r\n    let element = document.getElementById('hiddenDiv');\r\n    if (element.style.display === 'none') {\r\n        element.style.display = 'block';\r\n    } else {\r\n        element.style.display = 'none';\r\n    }\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Carga de datos v\u00eda AJAX, para cargar datos desde el servidor sin recargar la p\u00e1gina<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\nfunci\u00f3n recuperar datos() {\r\n    \/\/ Aqu\u00ed est\u00e1 tu c\u00f3digo para la solicitud AJAX\r\n}\r\n&lt;onclick=&quot;fetchData()&quot;&gt;Cargar datos&lt;\/button&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Cambiar el nombre del enlace de Activado a Desactivado<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;gui\u00f3n&gt;\r\n\/\/esperamos a que la p\u00e1gina se cargue por completo\r\nventana.onload = funci\u00f3n() {\r\n\r\n    \/\/obtenemos el identificador del elemento\r\n    var a = document.getElementById('cambiar');\r\n    \r\n    \/\/adjuntarle un evento\r\n    a.onclick = funci\u00f3n() {\r\n        \/\/realiza algunas acciones\r\n        if (this.innerHTML=='Activado') this.innerHTML = 'Desactivado';\r\n        de lo contrario this.innerHTML = 'Activado';\r\n        \/\/evitar hacer clic en el enlace href\r\n        return false;\r\n    }\r\n}\r\n&lt;\/script&gt;\r\n&lt;a id=&quot;switch&quot; href=&quot;#&quot;&gt;On&lt;\/a&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onabort<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 interrupci\u00f3n de la reproducci\u00f3n. El evento onabort ocurre cuando se interrumpe la descarga de audio o video. El evento onabort ocurre solo cuando se cancela la descarga, no cuando ocurre un error. Se aplica a los elementos audio, embed, img, object, video.<\/p>\n<p style=\"text-align: justify;\">Notificaci\u00f3n de que se ha interrumpido la carga del v\u00eddeo<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video id=&quot;myVideo&quot; onabort=&quot;alert('Carga de video cancelada')&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Alerta de que se ha interrumpido la carga de la imagen<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;img id=&quot;myImage&quot; src=&quot;example.jpg&quot; onabort=&quot;imageAborted()&quot;&gt;\r\n&lt;script&gt;\r\n    function imageAborted() {\r\n        alert(&quot;Image load was aborted by the user.&quot;);\r\n    }\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Notificaci\u00f3n de que el env\u00edo del formulario ha sido interrumpido<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;form id=&quot;myForm&quot;&gt;\r\n    &lt;input type=&quot;text&quot; placeholder=&quot;Enter your name&quot;&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Submit&quot;&gt;\r\n&lt;\/form&gt;\r\n&lt;script&gt;\r\n    var form = document.getElementById(&quot;myForm&quot;);\r\n    form.addEventListener(&quot;abort&quot;, formAborted);\r\n\r\n    function formAborted() {\r\n        alert(&quot;Form submission was aborted by the user.&quot;);\r\n    }\r\n&lt;\/script&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onafterprint \u2013 impresi\u00f3n terminada<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento onafterprint ocurre cuando la p\u00e1gina comienza a imprimirse. El evento onafterprint ocurre cuando se cierra el cuadro de di\u00e1logo de impresi\u00f3n. El navegador ejecuta onafterprint y onbeforeprint para que se puedan agregar notas, explicaciones y comentarios al proceso de impresi\u00f3n. Aplicable para body.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onafterprint=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onautocomplete \u2013 Autocompletar formulario completado<\/span><\/h2>\n<p style=\"text-align: justify;\">Un atributo con el que se completa el formulario con un solo clic: el navegador insertar\u00e1 los valores en los campos correspondientes.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;form&gt;\r\n  &lt;label for=&quot;name&quot;&gt;Nombre:&lt;\/label&gt;\r\n  &lt;input type=&quot;text&quot; id=&quot;name&quot; name=&quot;name&quot; autocomplete=&quot;on&quot;&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onautocompleteerror \u2013 error al autocompletar el formulario<\/span><\/h2>\n<h2><span style=\"color: #008000;\">onbeforeprint \u2013 preparaci\u00f3n para la impresi\u00f3n<\/span><\/h2>\n<h2><span style=\"color: #008000;\">onbeforeunload: el documento se ha descargado<\/span><\/h2>\n<p style=\"text-align: justify;\">Cuando un usuario abandona la p\u00e1gina, podemos preguntarle si realmente quiere salir. El manejo del evento beforeunload es responsable de esto. El evento ocurre antes del evento de descarga de la p\u00e1gina unload. Este evento permite que la p\u00e1gina web active un cuadro de di\u00e1logo de confirmaci\u00f3n preguntando al usuario si realmente desea abandonar la p\u00e1gina. Si el usuario confirma, el navegador navega a una nueva p\u00e1gina, en caso contrario cancela la navegaci\u00f3n. Seg\u00fan la especificaci\u00f3n, para mostrar un cuadro de di\u00e1logo de confirmaci\u00f3n, el controlador de eventos debe llamar a preventDefault() en el evento. Aplicable para body.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onbeforeunload=&quot;return myFunction()&quot;&gt;\r\n&lt;script&gt;\r\nfunction myFunction() {\r\n  return &quot;\u00bfEst\u00e1s seguro de que quieres cerrar la p\u00e1gina?...&quot;;\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onblur \u2013 p\u00e9rdida de concentraci\u00f3n<\/span><\/h2>\n<p style=\"text-align: justify;\">Evento focus llamado en el momento de enfocar, y blur \u2013 cuando el elemento pierde el foco. apoyo focus\/blur garantizado para elementos con los que el visitante puede interactuar: button, input, select, a etc. Por otro lado, los elementos de formato div, span, table \u2013 de forma predeterminada no puede recibir el foco. M\u00e9todo elem.focus() no funciona para ellos, y eventos focus\/blur nunca trabajar. Esto se puede cambiar usando el atributo HTML tabindex.<\/p>\n<p style=\"text-align: justify;\">Validaci\u00f3n (verificaci\u00f3n) de los datos ingresados \u200b\u200bcon una inscripci\u00f3n debajo del formulario<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;style&gt;\r\n  .invalid { border-color: red; }\r\n  #error { color: red }\r\n&lt;\/style&gt;\r\n&lt;script&gt;\r\ninput.onblur = function() {\r\n  if (!input.value.includes('@')) { \/\/ \u043d\u0435 email\r\n    input.classList.add('invalid');\r\n    error.innerHTML = 'Por favor ingrese un correo electr\u00f3nico correcto.'\r\n  }\r\n};\r\nentrada.onfocus = funci\u00f3n() {\r\n  if (this.classList.contains('inv\u00e1lido')) {\r\n    \/\/ elimina el indicador de error, porque el usuario quiere volver a ingresar datos\r\n    this.classList.remove('invalid');\r\n    error.innerHTML = &quot;&quot;;\r\n  }\r\n};\r\n&lt;\/script&gt;\r\n\u0412\u0430\u0448 email: &lt;input type=&quot;email&quot; id=&quot;input&quot;&gt;\r\n&lt;div id=&quot;error&quot;&gt;&lt;\/div&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Validaci\u00f3n (verificaci\u00f3n) de los datos ingresados \u200b\u200bllenando el formulario con color<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;style&gt;\r\n  .error {\r\n    background: red;\r\n  }\r\n&lt;\/style&gt;\r\n&lt;script&gt;\r\n  input.onblur = function() {\r\n    if (!this.value.includes('@')) { \/\/ \u043d\u0435 email\r\n      \/\/ mostrar error\r\n      this.classList.add(&quot;error&quot;);\r\n      \/\/ ...y devolver el enfoque\r\n      input.focus();\r\n    } else {\r\n      this.classList.remove(&quot;error&quot;);\r\n    }\r\n  };\r\n&lt;\/script&gt;\r\n\u0412\u0430\u0448 email: &lt;input type=&quot;email&quot; id=&quot;input&quot;&gt;\r\n&lt;input type=&quot;text&quot; style=&quot;width:280px&quot; placeholder=&quot;ingrese un correo electr\u00f3nico incorrecto y haga clic aqu\u00ed&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Cambiar el texto del formulario CLICK HERE<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; value=&quot;CLICK HERE&quot; \/&gt;\r\n&lt;script&gt;\r\nlet input = document.querySelector(&quot;input&quot;);\r\ninput.onblur = inputBlur;\r\ninput.onfocus = inputFocus;\r\nfunction inputBlur() {\r\n  input.value = &quot;Focus has been lost&quot;;\r\n}\r\nfunction inputFocus() {\r\n  input.value = &quot;Focus is here&quot;;\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Comprobando la forma con un contorno de marco<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html lang=&quot;ru&quot;&gt;\r\n &lt;head&gt;\r\n  &lt;meta charset=&quot;utf-8&quot;&gt;\r\n  &lt;title&gt;\u0421\u043e\u0431\u044b\u0442\u0438\u0435 onblur&lt;\/title&gt;\r\n  &lt;style&gt;\r\n   .warning {\r\n    background-color: #ffe;\r\n    outline: 1px solid #dc143c;\r\n   }\r\n  &lt;\/style&gt;\r\n  &lt;script&gt;\r\n   function warning(field) {\r\n    if (field.value == '') field.classList.add('warning');\r\n    else field.classList.remove('warning');\r\n   }\r\n  &lt;\/script&gt;\r\n &lt;\/head&gt; \r\n &lt;body&gt;\r\n  &lt;form&gt; \r\n   &lt;p&gt;&lt;input placeholder=&quot;Nombre&quot; onblur=&quot;advertencia(esta)&quot;&gt;&lt;\/p&gt;\r\n   &lt;p&gt;&lt;input placeholder=&quot;Apellido&quot; onblur=&quot;advertencia(esto)&quot;&gt;&lt;\/p&gt;\r\n   &lt;p&gt;&lt;input placeholder=&quot;Direcci\u00f3n&quot; onblur=&quot;advertencia(esta)&quot;&gt;&lt;\/p&gt;\r\n  &lt;\/formulario&gt;\r\n &lt;\/cuerpo&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Iluminaci\u00f3n al enfocar sin onblur<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;style&gt;\r\n*!*input:focus*\/!* {\r\n  background: #FA6;\r\n  outline: none;  \/* quitar marco *\/\r\n}\r\n&lt;\/style&gt;\r\n&lt;input type=&quot;text&quot;&gt;\r\n&lt;p&gt;El selector de enfoque resaltar\u00e1 un elemento cuando usted lo enfoque y eliminar\u00e1 el borde que el navegador usa para resaltar ese elemento de forma predeterminada.&lt;\/p&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Marcador de posici\u00f3n: valor de sugerencia dentro INPUT, que desaparece autom\u00e1ticamente al enfocar y existe hasta que el visitante comienza a ingresar texto, sin onblur<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;style&gt;\r\n.my*!*::-webkit-input-placeholder*\/!* {\r\n  color: red;\r\n  font-style: italic;\r\n}\r\n.my*!*::-moz-input-placeholder*\/!* {\r\n  color: red;\r\n  font-style: italic;\r\n}\r\n.my*!*::-ms-input-placeholder*\/!* {\r\n  color: red;\r\n  font-style: italic;\r\n}\r\n&lt;\/style&gt;\r\n&lt;input class=&quot;my&quot; type=&quot;text&quot; placeholder=&quot;E-mail&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">oncancel \u2013 cancelar acci\u00f3n<\/span><\/h2>\n<p style=\"text-align: justify;\">Cancelar la operaci\u00f3n actual en el dispositivo. Se utiliza para el control de dispositivos as\u00edncronos. Si realiza esta funci\u00f3n antes de iniciar una operaci\u00f3n, la operaci\u00f3n se cancelar\u00e1.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\nDevice.Cancel ();\r\n<\/pre>\n<h2><span style=\"color: #008000;\">oncanplay<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; puede comenzar a reproducir el archivo multimedia especificado<\/p>\n<p style=\"text-align: justify;\">El evento oncanplay ocurre cuando el navegador puede comenzar a reproducir el audio\/video especificado (cuando est\u00e1 lo suficientemente almacenado en el buffer para empezar). Durante el proceso de carga de audio\/v\u00eddeo, ocurren los siguientes eventos en este orden: onloadstart, ondurationchange, onloadedmetadata, onloadeddata, onprogress, oncanplay, oncanplaythrough<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando el video est\u00e9 listo para reproducirse:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video oncanplay=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">oncanplaythrough<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; Puede comenzar a reproducir el archivo multimedia especificado sin tener que detenerlo para almacenarlo en el b\u00fafer. El evento oncanplaythrough ocurre cuando el navegador considera que puede reproducir el medio especificado sin tener que detenerse para almacenar en b\u00fafer.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el v\u00eddeo se pueda reproducir en su totalidad, sin parar:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video oncanplaythrough=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onchange \u2013 cambiar valor<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento onchange ocurre cuando se ha cambiado el valor del elemento. Para botones de opci\u00f3n y casillas de verificaci\u00f3n, el evento onchange ocurre cuando cambia el estado marcado. Este evento es similar al evento oninput. La diferencia es que el evento oninput ocurre inmediatamente despu\u00e9s de que cambia el valor del elemento, mientras que onchange ocurre cuando el elemento pierde el foco despu\u00e9s de que el contenido ha cambiado. Otra diferencia es que el evento onchange tambi\u00e9n funciona en el elemento select.Un controlador para el evento onchange, que se activa cuando el valor del elemento cambia y pierde el foco. Para los objetos AudioTrackList, VideoTrackList y TextTrackList, este evento ocurre cuando una o m\u00e1s pistas est\u00e1n habilitadas\/deshabilitadas. Ejecuta c\u00f3digo JavaScript cuando ocurre un evento change; es decir, si el campo Select, Text o Textarea pierde el foco y su valor ha sido cambiado.<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el usuario cambie la opci\u00f3n seleccionada de un elemento select:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;select onchange=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed userName este es un campo de texto. Si el usuario cambia el texto y abandona el campo, el controlador onChange llama a la funci\u00f3n checkValue para confirmar que el valor es v\u00e1lido userName:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;INPUT TYPE=&quot;text&quot; VALUE=&quot;&quot; NAME=&quot;userName&quot; onChange=&quot;checkValue(this.value)&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onclose \u2013 cerrando algo<\/span><\/h2>\n<p style=\"text-align: justify;\">Controlador de eventos para eventos de cierre, enviado a la ventana. El evento OnClose ocurre cuando se cierra el cuadro de di\u00e1logo. Puede crear un controlador de eventos para el evento OnClose para realizar acciones espec\u00edficas cuando se cierra el cuadro de di\u00e1logo. Controlador de eventos close, que se invoca en los elementos del di\u00e1logo cuando se cierran, y tambi\u00e9n en los elementos WebSocket cuando se completa la conexi\u00f3n.<\/p>\n<h2><span style=\"color: #008000;\">oncontextmenu: abre el men\u00fa contextual<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento oncontextmenu ocurre cuando el usuario hace clic derecho en un elemento HTML para abrir el men\u00fa contextual. Propiedad del controlador de eventos para el evento de clic derecho dentro de un elemento window. Si no se evita el comportamiento est\u00e1ndar, entonces se activa el men\u00fa contextual del navegador (en IE8 hay un error relacionado con el hecho de que el men\u00fa contextual no se activar\u00e1 si se define un controlador de eventos contextmenu). El evento ocurrir\u00e1 junto con otros eventos right-click y no depende de \u00abcontextmenu\u00bb atributo del elemento.<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando el usuario haga clic derecho en el elemento div con el men\u00fa contextual:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div oncontextmenu=&quot;myFunction()&quot; contextmenu=&quot;mymenu&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">El c\u00f3digo de este ejemplo cambia el comportamiento predeterminado del navegador al desactivar el clic derecho.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndocument.oncontextmenu = function () {\r\n  \/\/ Usar objeto &quot;document&quot; en lugar de &quot;window&quot; por compatibilidad con IE8.\r\n  return false;\r\n};\r\nwindow.addEventListener(\r\n  &quot;contextmenu&quot;,\r\n  function (e) {\r\n    \/\/ No es compatible con versiones de IE anteriores a la 9\r\n    e.preventDefault();\r\n  },\r\n  false,\r\n);\r\n<\/pre>\n<h2><span style=\"color: #008000;\">oncopy \u2013 copia completada<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento oncopy ocurre cuando el usuario copia el contenido de un elemento. El evento oncopy tambi\u00e9n ocurre cuando el usuario copia un elemento, como una imagen creada usando el elemento img. El evento oncopy se utiliza principalmente para elementos \u00abinput\u00bb con type=\u00bbtext\u00bb. Se activa al insertar\/copiar\/eliminar texto. Si cancela la acci\u00f3n del navegador en sus controladores, no se producir\u00e1 la inserci\u00f3n\/copia\/eliminaci\u00f3n. El valor insertado no se puede obtener: en el momento en que se activa el evento, el elemento todav\u00eda tiene el valor anterior y el nuevo no est\u00e1 disponible.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript al copiar alg\u00fan texto de elemento input:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; oncopy=&quot;myFunction()&quot; value=&quot;Intenta copiar este texto&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">oncuechange &#8211; cambiar la etiqueta de un elemento track<\/span><\/h2>\n<p style=\"text-align: justify;\">Un controlador para el evento cuechange, que se activa cuando el elemento TextTrack cambia las marcas de tiempo mostradas actualmente (cue).<\/p>\n<h2><span style=\"color: #008000;\">oncut \u2013 el contenido ha sido cortado<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento oncut ocurre cuando el usuario corta el contenido de un elemento. Aunque el evento oncut es compatible con todos los elementos HTML, en realidad no es posible cortar contenido, por ejemplo, en un elemento p, A MENOS que el elemento haya establecido contenteditable en un valor \u00abtrue\u00bb. El evento oncut se utiliza principalmente para elementos input con type=\u00bbtext\u00bb.<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript al recortar texto en un elemento input:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; oncut=&quot;myFunction()&quot; value=&quot;Intenta acortar este texto&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondblclick \u2013 doble clic en el elemento<\/span><\/h2>\n<p style=\"text-align: justify;\">Controlador del evento dblclick, que ocurre cuando se hace doble clic con el bot\u00f3n izquierdo del mouse. El evento ondblclick ocurre cuando el usuario hace doble clic en un elemento HTML; es decir, cuando el usuario hace doble clic en un elemento de formulario o hiperv\u00ednculo.<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/> <br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/> <br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY &#8211; Representa la ubicaci\u00f3n del cursor cuando ocurre el evento.<br \/> <br \/>\nwhich &#8211; Representa 1 para un clic izquierdo del mouse y 3 para un clic derecho del mouse.<br \/> <br \/>\nmodifiers &#8211; Contiene una lista de teclas modificadoras presionadas cuando ocurri\u00f3 el evento.<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando haga doble clic en un elemento p:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;p ondblclick=&quot;myFunction()&quot;&gt;Haz doble clic en m\u00ed&lt;\/p&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed est\u00e1 el di\u00e1logo alert salida cuando el usuario hace doble clic en el bot\u00f3n:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;form&gt;\r\n&lt;INPUT Type=&quot;button&quot; Value=&quot;Double Click Me!&quot; onDblClick=&quot;alert('You just double clicked me!')&quot;&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondrag &#8211; arrastrando un elemento<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento ondrag ocurre cuando arrastras un elemento o texto seleccionado. Arrastrar y soltar es una caracter\u00edstica muy com\u00fan en HTML5. Esto es cuando \u00abagarras\u00bb un objeto y lo arrastras a otra ubicaci\u00f3n.<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\ndata &#8211; Devuelve una matriz de cadenas que contienen las URL de los objetos liberados.<br \/>\nmodifiers &#8211; Contiene una lista de teclas modificadoras presionadas cuando ocurre el evento.<br \/>\nscreenX, screenY &#8211; Representa la ubicaci\u00f3n del cursor en el momento en que ocurri\u00f3 el evento.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando se arrastra el elemento p:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;p draggable=&quot;true&quot; ondrag=&quot;myFunction(event)&quot;&gt;\u0422\u0430\u0449\u0438 \u043c\u0435\u043d\u044f!&lt;\/p&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondragend &#8211; arrastre de elementos completado<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento ondragend ocurre cuando el usuario ha terminado de arrastrar un elemento o selecci\u00f3n de texto.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el usuario termine de arrastrar el elemento p:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;p draggable=&quot;true&quot; ondragend=&quot;myFunction(event)&quot;&gt;\u00a1Arr\u00e1strame!&lt;\/p&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondragenter<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; el elemento se arrastra a una zona objetivo v\u00e1lida. El evento ondragenter ocurre cuando el elemento arrastrado o el texto seleccionado alcanza un objetivo de eliminaci\u00f3n v\u00e1lido. Los eventos ondragenter y ondragleave pueden ayudar al usuario a comprender que el elemento arrastrado est\u00e1 a punto de entrar o salir del destino de colocaci\u00f3n. Esto se puede hacer, por ejemplo, estableciendo el color de fondo cuando el elemento arrastrado llega al objetivo de arrastre y borrando el color cuando el elemento se aleja del objetivo.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el elemento arrastrado llegue al objetivo de arrastre:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div ondragenter=&quot;myFunction(event)&quot;&gt;&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondragexit<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 salir del modo arrastrar y soltar. Un controlador para el evento dragexit, que ocurre cuando un elemento ya no es el objetivo de un elemento que puede aceptarlo.<\/p>\n<h2><span style=\"color: #008000;\">ondragleave<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; El elemento deja un objetivo v\u00e1lido. El evento ondragleave ocurre cuando un elemento arrastrado o una selecci\u00f3n de texto deja un destino de colocaci\u00f3n v\u00e1lido.<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando el elemento arrastrado se aleje del objetivo de arrastre:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div ondragleave=&quot;myFunction(event)&quot;&gt;&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondragover<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; el elemento se arrastra a un punto de destino v\u00e1lido. El evento ondragover ocurre cuando un elemento arrastrado o un texto seleccionado se arrastra sobre un destino de colocaci\u00f3n v\u00e1lido. De forma predeterminada, los datos\/elementos no se pueden eliminar de otros elementos. Para permitir la eliminaci\u00f3n, debemos desactivar el procesamiento de elementos de forma predeterminada. Esto se hace llamando al m\u00e9todo event.preventDefault() en el evento ondragover.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando se arrastra un elemento sobre el objetivo de arrastre:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div ondragover=&quot;myFunction(event)&quot;&gt;&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondragstart<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 inicio de la operaci\u00f3n de arrastrar y soltar. El evento ondragstart ocurre cuando el usuario comienza a arrastrar un elemento o texto seleccionado.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el usuario comience a arrastrar un elemento p:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;p draggable=&quot;true&quot; ondragstart=&quot;myFunction(event)&quot;&gt;\u00a1Arr\u00e1strame!&lt;\/p&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondrop<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 el elemento arrastrado se suelta. El evento ondrop ocurre cuando el elemento arrastrado o el texto seleccionado se suelta en un destino de colocaci\u00f3n v\u00e1lido.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el elemento arrastrado se elimina del elemento div:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div ondrop=&quot;myFunction(event)&quot;&gt;&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ondurationchange<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; cambio en la longitud del medio. Evento ondurationchange Ocurre cuando cambia la duraci\u00f3n del audio\/v\u00eddeo. Al cargar audio\/v\u00eddeo, la duraci\u00f3n cambiar\u00e1 de \u00abNaN\u00bb a la duraci\u00f3n real del audio\/v\u00eddeo. Durante el proceso de carga de audio\/v\u00eddeo, ocurren los siguientes eventos en este orden: onloadstart, ondurationchange, onloadedmetadata, onloadeddata, onprogress, oncanplay, oncanplaythrough<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando la duraci\u00f3n del video haya cambiado:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video ondurationchange=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onemptied<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 De repente, el archivo dej\u00f3 de estar disponible. Controlador de eventos emptied, que ocurre cuando la lista de reproducci\u00f3n actual de un elemento de audio o video est\u00e1 vac\u00eda. La mayor\u00eda de las veces se debe a un fallo de conexi\u00f3n.<\/p>\n<h2><span style=\"color: #008000;\">onended<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 la reproducci\u00f3n est\u00e1 completa. El evento finalizado ocurre cuando el audio\/v\u00eddeo llega al final. Este evento es \u00fatil para mensajes como \u00abgracias por escuchar\u00bb, \u00abgracias por mirar\u00bb, etc.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando finalice el audio:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;audio onended=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onerror<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 ocurri\u00f3 un error. Evento onerror Se activa cuando se produce un error al cargar un archivo externo (como un documento o una imagen). Cuando se utiliza en medios de audio\/video, los eventos relacionados que ocurren cuando hay alguna interrupci\u00f3n en el proceso de carga de medios son: onabort, onemptied, onstalled, onsuspend.<\/p>\n<p style=\"text-align: justify;\">Evento error ocurre solo cuando ocurre un error de sintaxis de JavaScript o un error de tiempo de ejecuci\u00f3n, no cuando ocurre un error del navegador. Por ejemplo, si intenta configurar window.location.href=&#8217;notThere.html&#8217; y el archivo notThere.html no existe, el mensaje de error resultante ser\u00e1 el mensaje del navegador; por lo tanto, onError no interceptar\u00e1 este mensaje. Sin embargo, el evento error se incluir\u00e1 en una URL no v\u00e1lida en la etiqueta IMG o en datos de imagen no v\u00e1lidos.<\/p>\n<p style=\"text-align: justify;\">window.onerror solo se aplica a errores que ocurren en la ventana que contiene window.onerror, y no a errores en otras ventanas.<\/p>\n<p style=\"text-align: justify;\">onError puede tener los siguientes valores:<br \/>\n&#8211; null para suprimir todos los cuadros de di\u00e1logo de error de JavaScript. Estableciendo window.onerror en null \u043esignifica que sus usuarios no ver\u00e1n errores de JavaScript causados \u200b\u200bpor su c\u00f3digo.<br \/>\n&#8211; El nombre de la funci\u00f3n que maneja los errores (los argumentos son el texto del mensaje, la URL y el n\u00famero de l\u00ednea con el error). Para suprimir el cuadro de di\u00e1logo de error de JavaScript est\u00e1ndar, esta funci\u00f3n debe devolver true. Vea el Ejemplo 3 a continuaci\u00f3n.<br \/>\n&#8211; Variable o propiedad que contiene null o una referencia v\u00e1lida a la funci\u00f3n.<br \/>\nSi est\u00e1 escribiendo una funci\u00f3n de manejo de errores, tiene tres opciones para informar errores:<br \/>\n&#8211; Realice un seguimiento de los errores, pero permita que se informen a trav\u00e9s de un cuadro de di\u00e1logo JavaScript est\u00e1ndar (use una funci\u00f3n de manejo de errores que devuelva false o no devuelve un valor).<br \/>\n&#8211; Informe los errores usted mismo y desactive el cuadro de di\u00e1logo est\u00e1ndar (use la funci\u00f3n de manejo de errores que devuelve true).<br \/>\n&#8211; Desactivar todos los mensajes de error (establecer null en el controlador onError).<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript si se produce un error al cargar una imagen:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;img src=&quot;image.gif&quot; onerror=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Ejemplo 1: controlador con valor Null. En esta etiqueta c\u00f3digo IMG onError=\u00bbnull\u00bb suprime los mensajes de error si se produce un error al cargar una imagen.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;IMG NAME=&quot;imageBad1&quot; SRC=&quot;corrupt.gif&quot; ALIGN=&quot;left&quot; BORDER=&quot;2&quot; onError=&quot;null&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Ejemplo 2: controlador con Null para la ventana. El controlador onError para una ventana no se puede expresar mediante HTML. Por lo tanto, debes ingresar todo lo necesario, en min\u00fasculas, en la etiqueta SCRIPT. El siguiente c\u00f3digo asigna null Controlador onError para toda la ventana, no solo el objeto Image. Esto suprime todos los mensajes de error de JavaScript, incluidos los del objeto Image.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nwindow.onerror=null\r\n&lt;\/SCRIPT&gt;\r\n&lt;IMG NAME=&quot;imageBad1&quot; SRC=&quot;corrupt.gif&quot; ALIGN=&quot;left&quot; BORDER=&quot;2&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Sin embargo, si el objeto Image tiene su propio controlador onError especial; este controlador se ejecutar\u00e1 cuando ocurra un error con la imagen. Esto ocurre porque window.onerror=null suprime los mensajes de error de JavaScript, no los controladores onError.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nwindow.onerror=null\r\nfunction myErrorFunc() {\r\n   alert(&quot;The image had a nasty error.&quot;)\r\n}\r\n&lt;\/SCRIPT&gt;\r\n&lt;IMG NAME=&quot;imageBad1&quot; SRC=&quot;corrupt.gif&quot; ALIGN=&quot;left&quot; BORDER=&quot;2&quot; onError=&quot;myErrorFunc()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">En el siguiente ejemplo, window.onerror=null suprime todos los mensajes de error. Sin onerror=null el c\u00f3digo causar\u00e1 un error de desbordamiento de pila porque hay recursividad infinita.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nwindow.onerror = null;\r\nfunction testErrorFunction() {\r\n   testErrorFunction();\r\n}\r\n&lt;\/SCRIPT&gt;\r\n&lt;BODY onload=&quot;testErrorFunction()&quot;&gt;\r\ntest message\r\n&lt;\/BODY&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Ejemplo 3: funci\u00f3n de manejo de errores. Aqu\u00ed se define la funci\u00f3n myOnError, que detecta errores de JavaScript. Esta funci\u00f3n utiliza tres matrices para almacenar el mensaje, la URL y la cadena ofensiva para cada error. Si el usuario hace clic en el bot\u00f3n Display Error Report, La funci\u00f3n displayErrors abre una ventana y crea un mensaje de error en ella. Tenga en cuenta que esta funci\u00f3n devuelve true para suprimir el cuadro de di\u00e1logo de error est\u00e1ndar de JavaScript.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nwindow.onerror = myOnError\r\nmsgArray = new Array()\r\nurlArray = new Array()\r\nlnoArray = new Array()\r\nfunction myOnError(msg, url, lno) {\r\n   msgArray&#x5B;msgArray.length]\r\n= msg\r\n   urlArray&#x5B;urlArray.length] = url\r\n   lnoArray&#x5B;lnoArray.length]\r\n= lno\r\n   return true\r\n}\r\nfunction displayErrors() {\r\n   win2=window.open('','window2','scrollbars=yes')\r\n   win2.document.writeln('&lt;B&gt;Error Report&lt;\/B&gt;&lt;P&gt;')\r\n   for (var i=0; i &lt; msgArray.length; i++) {\r\n      win2.document.writeln('&lt;B&gt;Error in file:&lt;\/B&gt; '\r\n+ urlArray&#x5B;i] + '&lt;BR&gt;')\r\n      win2.document.writeln('&lt;B&gt;Line\r\nnumber:&lt;\/B&gt; ' + lnoArray&#x5B;i] + '&lt;BR&gt;')\r\n      win2.document.writeln('&lt;B&gt;Message:&lt;\/B&gt; '\r\n+ msgArray&#x5B;i] + '&lt;P&gt;')\r\n   }\r\n   win2.document.close()\r\n}\r\n&lt;\/SCRIPT&gt;\r\n&lt;BODY onload=&quot;noSuchFunction()&quot;&gt;\r\n&lt;FORM&gt;\r\n&lt;BR&gt;&lt;INPUT TYPE=&quot;button&quot; VALUE=&quot;This button has a syntax error&quot; onClick=&quot;alert('unterminated string')&quot;&gt;\r\n&lt;P&gt;&lt;INPUT TYPE=&quot;button&quot; VALUE=&quot;Display Error Report&quot; onClick=&quot;displayErrors()&quot;&gt;\r\n&lt;\/FORM&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Este ejemplo dar\u00e1 el resultado:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\nError Report\r\nError in file:\r\nfile:\/\/\/c%7C\/temp\/onerror.html\r\nLine number: 34\r\nMessage: unterminated string literal\r\nError in file: file:\/\/\/c%7C\/temp\/onerror.html\r\nLine number:\r\n34\r\nMessage: missing ) after argument list\r\nError in file: file:\/\/\/c%7C\/temp\/onerror.html\r\nLine number: 30\r\nMessage: noSuchFunction is not defined\r\n<\/pre>\n<p style=\"text-align: justify;\">Ejemplo 4: un controlador de eventos llama a una funci\u00f3n. En la etiqueta IMG, el controlador onError llama a la funci\u00f3n badImage cuando ocurren errores al cargar la imagen.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nfunction badImage(theImage) {\r\n   alert('Error: ' + theImage.name + ' did not load properly.')\r\n}\r\n&lt;\/SCRIPT&gt;\r\n&lt;FORM&gt;\r\n&lt;IMG NAME=&quot;imageBad2&quot; SRC=&quot;orca.gif&quot; ALIGN=&quot;left&quot; BORDER=&quot;2&quot; onError=&quot;badImage(this)&quot;&gt;\r\n&lt;\/FORM&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onfocus<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 establecer el foco en un elemento. Ejecuta c\u00f3digo JavaScript cuando ocurre un evento focus; es decir, si una ventana, marco o conjunto de marcos recibe el foco o si un elemento del formulario recibe el foco. El evento onfocus ocurre cuando un elemento recibe foco. El evento onfocus se utiliza a menudo en los campos de entrada. Todos los elementos HTML EXCEPTO: base, bdo, br, head, html, iframe, meta, param, script, style, y title<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando el campo de entrada reciba el foco:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onfocus=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed el controlador onFocus se usa en el objeto valueField Textarea para llamar a la funci\u00f3n valueCheck.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;INPUT TYPE=&quot;textarea&quot; VALUE=&quot;&quot; NAME=&quot;valueField&quot; onFocus=&quot;valueCheck()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onfocusin<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento onfocusin ocurre cuando un elemento recibe foco. El evento onfocusin se utiliza a menudo en los campos de entrada. Todos los elementos HTML EXCEPTO: base, bdo, br, head, html, iframe, meta, param, script, style, y title<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando un campo de entrada est\u00e9 a punto de recibir el foco:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onfocusin=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onfocusout<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento onfocusout ocurre cuando un elemento pierde el foco. El evento onfocusout se utiliza a menudo en los campos de entrada. El evento onfocusout se usa a menudo durante la validaci\u00f3n del formulario (cuando el usuario abandona el campo del formulario). Todos los elementos HTML EXCEPTO: base, bdo, br, head, html, iframe, meta, param, script, style, y title<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando un campo de entrada est\u00e9 a punto de perder el foco:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onfocusout=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onfullscreenchange<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento fullscreenchange ocurre cuando un elemento se ve en modo de pantalla completa. Utilice el m\u00e9todo element.requestFullscreen() para ver el elemento en modo de pantalla completa. Utilice el m\u00e9todo element.exitFullscreen() para cancelar el modo de pantalla completa. Cada navegador requiere un prefijo espec\u00edfico (ver par\u00e9ntesis): 45.0 (webkit), 11.0 (ms), 47.0 (moz), 5.1 (webkit), 15.0 (webkit)<\/p>\n<p style=\"text-align: justify;\">Mostrar algo de texto al ver una p\u00e1gina en modo de pantalla completa:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndocument.addEventListener(&quot;fullscreenchange&quot;, function() {\r\n  output.innerHTML = &quot;fullscreenchange event fired!&quot;;\r\n});\r\n<\/pre>\n<p style=\"text-align: justify;\">Utilice prefijos para c\u00f3digo entre navegadores:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\/* Sintaxis est\u00e1ndar *\/\r\ndocument.addEventListener(&quot;fullscreenchange&quot;, function() {\r\n  ...\r\n});\r\n\/* Firefox *\/\r\ndocument.addEventListener(&quot;mozfullscreenchange&quot;, function() {\r\n  ...\r\n});\r\n\/* Chrome, Safari and Opera *\/\r\ndocument.addEventListener(&quot;webkitfullscreenchange&quot;, function() {\r\n  ...\r\n});\r\n\/* IE \/ Edge *\/\r\ndocument.addEventListener(&quot;msfullscreenchange&quot;, function() {\r\n  ...\r\n});\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onfullscreenerror<\/span><\/h2>\n<p style=\"text-align: justify;\">El evento fullscreenerror ocurre cuando un elemento no se puede ver en modo de pantalla completa, a pesar de que fue solicitado. Utilice el m\u00e9todo element.requestFullscreen() para ver el elemento en modo de pantalla completa. Utilice el m\u00e9todo element.exitFullscreen() para cancelar el modo de pantalla completa.<\/p>\n<p style=\"text-align: justify;\">Texto de advertencia si el elemento no se puede ver en modo de pantalla completa:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndocument.addEventListener(&quot;fullscreenerror&quot;, function() {\r\n  alert(&quot;Fullscreen denied&quot;)\r\n});\r\n<\/pre>\n<p style=\"text-align: justify;\">Utilice prefijos para c\u00f3digo entre navegadores:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\/* Sintaxis est\u00e1ndar *\/\r\ndocument.addEventListener(&quot;fullscreenerror&quot;, function() {\r\n  ...\r\n});\r\n\/* Firefox *\/\r\ndocument.addEventListener(&quot;mozfullscreenerror&quot;, function() {\r\n  ...\r\n});\r\n\/* Chrome, Safari and Opera *\/\r\ndocument.addEventListener(&quot;webkitfullscreenerror&quot;, function() {\r\n  ...\r\n});\r\n\/* IE \/ Edge *\/\r\ndocument.addEventListener(&quot;msfullscreenerror&quot;, function() {\r\n  ...\r\n});\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onhashchange<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; cambiando la encuadernaci\u00f3n de parte de la direcci\u00f3n. Soporte de etiquetas HTML: body. El evento onhashchange ocurre cuando se realizan cambios en la parte de anclaje (comienza con el car\u00e1cter &#8216;#&#8217;) de la URL actual. Un ejemplo de lo que realmente es la parte ancla: digamos que la URL actual es http:\/\/www.example.com\/test.htm#part2. La parte ancla de esa URL ser\u00eda #part2.<br \/>\nPara activar este evento puedes:<br \/>\nCambie la parte vinculante configurando la propiedad location.hash o location.href del objeto Location<br \/>\nIr a la p\u00e1gina actual con otro marcador (use los botones atr\u00e1s o adelante)<br \/>\nHaga clic en el enlace de anclaje del marcador<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando parte del ancla haya cambiado:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onhashchange=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">C\u00f3mo asignar un evento \u00abonhashchange\u00bb a un objeto window:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nwindow.onhashchange = myFunction;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">oninput<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 inicio de la entrada de datos. El evento oninput ocurre cuando el elemento recibe la entrada del usuario. Este evento ocurre cuando el valor de un elemento cambia input o textarea. Este evento es similar al evento onchange. La diferencia es que el evento oninput ocurre inmediatamente despu\u00e9s de que cambia el valor del elemento, mientras que onchange ocurre cuando el elemento pierde el foco despu\u00e9s de que su contenido ha cambiado. Otra diferencia es que el evento onchange tambi\u00e9n funciona en elementos select. Soporte de etiquetas HTML: input type=\u00bbcolor\u00bb, input type=\u00bbdate\u00bb, input type=\u00bbdatetime\u00bb, input type=\u00bbemail\u00bb, input type=\u00bbmonth\u00bb, input type=\u00bbnumber\u00bb, input type=\u00bbpassword\u00bb, input type=\u00bbrange\u00bb, input type=\u00bbsearch\u00bb, input type=\u00bbtel\u00bb, input type=\u00bbtext\u00bb, input type=\u00bbtime\u00bb, input type=\u00bburl\u00bb, input type=\u00bbweek\u00bb y textarea<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el usuario escribe algo en un campo input:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; oninput=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Control deslizante de rango: c\u00f3mo actualizar din\u00e1micamente el valor del control deslizante:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;range&quot; oninput=&quot;myFunction(this.value)&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">oninvalid<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 el art\u00edculo est\u00e1 da\u00f1ado. El evento oninvalid ocurre cuando se env\u00eda el elemento input no es v\u00e1lido. Por ejemplo, un campo de entrada no es v\u00e1lido si el atributo requerido est\u00e1 configurado y el campo est\u00e1 vac\u00edo (el atributo requerido especifica que el campo de entrada debe completarse antes de poder enviar el formulario). Soporte de etiquetas HTML: input<\/p>\n<p style=\"text-align: justify;\">Advertencia sobre alg\u00fan texto si el campo de entrada no es v\u00e1lido:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; oninvalid=&quot;alert('\u00a1Debes llenar el formulario!');&quot; required&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Texto de advertencia si el campo de entrada contiene menos de 6 caracteres:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\u0418\u043c\u044f: &lt;input type=&quot;text&quot; id=&quot;myInput&quot; name=&quot;fname&quot; pattern=&quot;.{6,}&quot; required&gt;\r\n&lt;script&gt;\r\ndocument.getElementById(&quot;myInput&quot;).addEventListener(&quot;invalid&quot;, myFunction);\r\nfunction myFunction() {\r\n  alert(&quot;Debe contener 6 o m\u00e1s caracteres&quot;);\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Texto de advertencia si el campo de entrada contiene un n\u00famero menor que 2 o mayor que 5:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\u041d\u043e\u043c\u0435\u0440: &lt;input type=&quot;number&quot; id=&quot;myInput&quot; name=&quot;quantity&quot; min=&quot;2&quot; max=&quot;5&quot; required&gt;\r\n&lt;script&gt;\r\ndocument.getElementById(&quot;myInput&quot;).addEventListener(&quot;invalid&quot;, myFunction);\r\nfunction myFunction() {\r\n  alert(&quot;Debes elegir un n\u00famero del 2 al 5. Has elegido: &quot; + this.value);\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onkeydown<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 tecla presionada. El evento onkeydown ocurre cuando el usuario presiona una tecla (en el teclado). Orden de eventos asociados con un evento onkeydown: onkeydown, onkeypress, onkeyup. Todos los elementos HTML EXCEPTO: base, bdo, br, head, html, iframe, meta, param, script, style, y title. El evento KeyDown siempre ocurre antes del evento KeyPress. Si onKeyDown regresa false, el evento KeyPress no ocurre. Esto evita que ocurran eventos KeyPress cuando el usuario mantiene presionada una tecla.<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY &#8211; Para un evento sobre ventana, representa la ubicaci\u00f3n del cursor en el momento en que ocurri\u00f3 el evento. Para un evento encima de un formulario, representa la posici\u00f3n del elemento del formulario.<br \/>\nwhich &#8211; ASCII-el valor de la tecla presionada. Para obtener la letra, n\u00famero o car\u00e1cter real de la tecla presionada, use el m\u00e9todo String.fromCharCode. Para establecer esta propiedad cuando se desconoce el valor ASCII, utilice el String.charCodeAt.<br \/>\nmodifiers &#8211; Contiene una lista de teclas modificadoras presionadas cuando ocurre el evento..<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el usuario presiona una tecla:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onkeydown=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Utilice \u00abonkeydown\u00bb con evento \u00abonkeyup\u00bb:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onkeydown=&quot;keydownFunction()&quot; onkeyup=&quot;keyupFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed, la funci\u00f3n blockA se utiliza para calcular los caracteres ingresados \u200b\u200bdesde el teclado en el cuadro de texto de entrada de texto. Si el usuario ingresa \u00aba\u00bb o \u00abA\u00bb, la funci\u00f3n devuelve false, y el cuadro de texto no muestra el valor. En esta funci\u00f3n la propiedad which El evento asigna el valor ASCII de la tecla presionada por el usuario a la variable keyChar. Operador if calcula keyChar y devuelve false para caracteres espec\u00edficos:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;form name=&quot;main&quot;&gt;\r\n   &lt;input name=&quot;textentry&quot;\r\ntype=text size=10 maxlength=10&gt;\r\n&lt;\/form&gt;\r\n&lt;script&gt;\r\nfunction blockA(e) {\r\nvar keyChar = String.fromCharCode(e.which);\r\nif (keyChar == 'A' || keyChar == 'a')\r\nreturn false;\r\n}\r\ndocument.main.textentry.onkeydown = blockA;\r\n&lt;\/script&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onkeypress<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; Se presiona una tecla y luego se suelta. Ejecuta c\u00f3digo JavaScript cuando ocurre el evento KeyPress; es decir, si el usuario mantiene presionada la tecla. El evento onkeypress ocurre cuando el usuario presiona una tecla (en el teclado). El evento onkeypress no se activa para todas las teclas (por ejemplo, ALT, CTRL, SHIFT, ESC) en todos los navegadores. Para detectar solo si el usuario presion\u00f3 una tecla, use el evento onkeydown porque funciona para todas las teclas. Orden de eventos asociados con un evento onkeydown: onkeydown, onkeypress, onkeyup. Todos los elementos HTML EXCEPTO: base, bdo, br, head, html, iframe, meta, param, script, style, y title. El evento KeyPress se activa inmediatamente despu\u00e9s del evento KeyDown solo cuando onKeyDown devuelve algo distinto a false. El evento KeyPress ocurre repetidamente hasta que el usuario suelta la tecla. Puedes cancelar eventos individuales KeyPress.<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY &#8211; Para un evento, la superposici\u00f3n representa la ubicaci\u00f3n del cursor en el momento en que ocurri\u00f3 el evento. Para un evento de sobreformulario, representa la posici\u00f3n de un elemento de formulario.<br \/>\nwhich &#8211; ASCII-el valor de la tecla presionada. Para obtener la letra, n\u00famero o car\u00e1cter real de la tecla presionada, use el m\u00e9todo String.fromCharCode. Para establecer esta propiedad cuando se desconoce el valor ASCII, utilice el String.charCodeAt.<br \/>\nmodifiers &#8211; Contiene una lista de teclas modificadoras presionadas cuando ocurre el evento.<\/p>\n<p style=\"text-align: justify;\">Ejecutar JavaScript cuando el usuario presiona una tecla:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onkeypress=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed, el m\u00e9todo captureEvents captura la entrada del teclado y el controlador onKeyPress llama a la funci\u00f3n blockA para verificar las pulsaciones de teclas. Si se presionan las teclas \u00aba\u00bb o \u00abz\u00bb, la funci\u00f3n desplaza la ventana del Navegador.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nfunction blockA(e) {\r\nvar keyChar = String.fromCharCode(e.which);\r\nif (keyChar == 'A' || keyChar == 'a')\r\nself.scrollBy(10,10);\r\nelse if(keyChar == 'Z' || keyChar == 'z')\r\nself.scrollBy(-10,-10);\r\nelse return false;\r\n}\r\ndocument.captureEvents(Event.KEYPRESS);\r\ndocument.onkeypress = blockA;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onkeyup<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 tecla liberada. El evento onkeyup ocurre cuando el usuario suelta una tecla (en el teclado). Orden de eventos asociados con un evento onkeydown: onkeydown, onkeypress, onkeyup. Todos los elementos HTML EXCEPTO: base, bdo, br, head, html, iframe, meta, param, script, style, y title.<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY &#8211; Para un evento, la superposici\u00f3n representa la ubicaci\u00f3n del cursor en el momento en que ocurri\u00f3 el evento. Para un evento de sobreformulario, representa la posici\u00f3n de un elemento de formulario.<br \/>\nwhich &#8211; ASCII-el valor de la tecla presionada. Para obtener la letra, n\u00famero o car\u00e1cter real de la tecla presionada, use el m\u00e9todo String.fromCharCode. Para establecer esta propiedad cuando se desconoce el valor ASCII, utilice el String.charCodeAt.<br \/>\nmodifiers &#8211; Contiene una lista de teclas modificadoras presionadas cuando ocurre el evento.<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando el usuario suelte la clave:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onkeyup=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Utilice \u00abonkeydown\u00bb con evento \u00abonkeyup\u00bb:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onkeydown=&quot;keydownFunction()&quot; onkeyup=&quot;keyupFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Genere la clave real que se emiti\u00f3 dentro del campo de texto:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u0438\u043c\u044f: &lt;input type=&quot;text&quot; id=&quot;fname&quot; onkeyup=&quot;myFunction()&quot;&gt;\r\n&lt;script&gt;\r\nfunction myFunction() {\r\n  var x = document.getElementById(&quot;fname&quot;).value;\r\n  document.getElementById(&quot;demo&quot;).innerHTML = x;\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed, el m\u00e9todo captureEvents captura la entrada del teclado y el controlador onKeyUp llama a la funci\u00f3n Key_Up. M\u00e9todo alert la funci\u00f3n abre un cuadro de di\u00e1logo para mostrar el valor de la tecla presionada.:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nfunction Key_Up(e) {\r\nvar keyChar = String.fromCharCode(e.which);\r\nalert(&quot;Hold '&quot; + keyChar +&quot;' again for me, okay?&quot;);\r\n}\r\ndocument.onkeyup=Key_Up;\r\ndocument.captureEvents(Event.KEYUP);\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onload<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 art\u00edculo cargado. El evento onload ocurre cuando se ha cargado un objeto. El evento onload se usa con mayor frecuencia en un elemento body para ejecutar un script despu\u00e9s de que la p\u00e1gina web haya cargado completamente todo el contenido (incluidas im\u00e1genes, archivos de script, archivos CSS, etc.). El evento onload se puede utilizar para verificar el tipo y la versi\u00f3n del navegador del visitante y cargar la versi\u00f3n apropiada de la p\u00e1gina web seg\u00fan la informaci\u00f3n recibida. El evento onload tambi\u00e9n se puede utilizar para procesar archivos cookie.<\/p>\n<p style=\"text-align: justify;\">El controlador onLoad se utiliza en la etiqueta BODY o FRAMESET, por ejemplo, BODY onLoad=\u00bb&#8230;\u00bb. Para etiquetas FRAMESET y FRAME: el evento del controlador onLoad en el marco (colocado en la etiqueta BODY) ocurre antes de la onLoad de la etiqueta FRAMESET (colocada en la etiqueta FRAMESET). Para im\u00e1genes, el controlador onLoad especifica el script que se ejecutar\u00e1 cuando se genere la image. No confunda la salida de im\u00e1genes con la carga de im\u00e1genes. Puede cargar varias im\u00e1genes y luego mostrarlas una por una en el mismo objeto Image estableciendo la propiedad src del objeto. Si cambia la salida de la imagen de esta manera, onLoad se ejecuta cada vez que se genera la imagen, no solo cuando las im\u00e1genes se cargan en la memoria.<\/p>\n<p style=\"text-align: justify;\">Si especifica un controlador onLoad para un objeto Image que genera un GIF en bucle (GIF de varias im\u00e1genes), cada bucle de animaci\u00f3n incluye un controlador onLoad y el controlador se ejecuta una vez para cada bucle. Puede utilizar el controlador onLoad para crear una animaci\u00f3n JavaScript configurando repetidamente la propiedad src de un objeto Image.<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nwidth, height &#8211; Para un evento encima de una ventana, pero no encima de una capa, estas propiedades representan el ancho y el alto de la ventana.<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript inmediatamente despu\u00e9s de cargar la p\u00e1gina:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onload=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">En JavaScript, use el m\u00e9todo addEventListener():<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nobject.addEventListener(&quot;load&quot;, myScript);\r\n<\/pre>\n<p style=\"text-align: justify;\">Mostrar un mensaje cuando se carga la p\u00e1gina. Aqu\u00ed el controlador onLoad imprime un saludo despu\u00e9s de que se haya cargado la p\u00e1gina.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;BODY onLoad=&quot;window.alert(&quot;Welcome to the Brave New World home page!&quot;)&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Muestra un mensaje al cargar una imagen. Aqu\u00ed se crean dos objetos Image: uno &#8211; constructor Image, y el segundo &#8211; etiqueta IMG. Cada objeto Image tiene un controlador onLoad que llama a la funci\u00f3n displayAlert, que muestra un mensaje. Para una imagen creada con una etiqueta IMG, el cuadro de di\u00e1logo alert muestra el nombre de la imagen. Para una imagen creada por el dise\u00f1ador Image, alert muestra un mensaje sin el nombre de la imagen. Esto ocurre porque el controlador onLoad para el objeto creado por el constructor Image, debe ser el nombre de una funci\u00f3n y no puede especificar par\u00e1metros para la funci\u00f3n displayAlert.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nimageA = new Image(50,50)\r\nimageA.onload=displayAlert\r\nimageA.src=&quot;cyanball.gif&quot;\r\nfunction displayAlert(theImage) {\r\n   if (theImage==null) {\r\n      alert('An image loaded')\r\n   }\r\n   else alert(theImage.name + ' has been loaded.')\r\n}\r\n&lt;\/SCRIPT&gt;\r\n&lt;IMG NAME=&quot;imageB&quot; SRC=&quot;greenball.gif&quot; ALIGN=&quot;top&quot; onLoad=displayAlert(this)&gt;&lt;BR&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Salida de animaci\u00f3n GIF en bucle. La imagen que se muestra aqu\u00ed es birdie.gif, que es una imagen GIF animada. El controlador onLoad incrementa la variable cycles, que rastrea el n\u00famero de ciclos de animaci\u00f3n. Para ver el valor cycles, el usuario hace clic en el bot\u00f3n Count Loops.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nvar cycles=0\r\n&lt;\/SCRIPT&gt;\r\n&lt;IMG ALIGN=&quot;top&quot; SRC=&quot;birdie.gif&quot; BORDER=0 onLoad=&quot;++cycles&quot;&gt;\r\n&lt;INPUT TYPE=&quot;button&quot; VALUE=&quot;Count Loops&quot; onClick=&quot;alert('The animation has looped ' + cycles + ' times.')&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Cambia la animaci\u00f3n GIF que se muestra. Este ejemplo utiliza el controlador onLoad para rotar seis animaciones GIF. Cada animaci\u00f3n se muestra como una secuencia de objetos individuales Image. Cuando se carga el documento, se genera !anim0.html. Cuando se completa esta animaci\u00f3n, el controlador onLoad hace que se cargue el siguiente archivo, !anim1.html, en lugar del primer archivo. Una vez completada la \u00faltima animaci\u00f3n, !anim5.html, se muestra nuevamente el primer archivo. Tenga en cuenta que la funci\u00f3n changeAnimation no se llama a s\u00ed misma despu\u00e9s de cambiar la propiedad src de un objeto Image. Esto sucede porque se cambia la propiedad src, el controlador onLoad de la imagen est\u00e1 habilitado y se llama a la funci\u00f3n changeAnimation.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nvar whichImage=0\r\nvar maxImages=5\r\nfunction changeAnimation(theImage) {\r\n   ++whichImage\r\n   if (whichImage &lt;= maxImages) {\r\n      var imageName=&quot;!anim&quot; + whichImage + &quot;.gif&quot;\r\n      theImage.src=imageName\r\n   } else {\r\n      whichImage=-1\r\n      return\r\n   }\r\n}\r\n&lt;\/SCRIPT&gt;\r\n&lt;IMG NAME=&quot;changingAnimation&quot; SRC=&quot;!anim0.gif&quot; BORDER=0 ALIGN=&quot;top&quot; onLoad=&quot;changeAnimation(this)&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Utilice el evento onload para el elemento img. Notificaci\u00f3n \u00abImagen cargada\u00bb inmediatamente despu\u00e9s de cargar la imagen:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;img src=&quot;javascriptw3.gif&quot; onload=&quot;loadImage()&quot; width=&quot;100&quot; height=&quot;132&quot;&gt;\r\n&lt;script&gt;\r\nfunction loadImage() {\r\n  alert(&quot;Image is loaded&quot;);\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Utilice el evento onload para procesar archivos cookie:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onload=&quot;checkCookies()&quot;&gt;\r\n&lt;script&gt;\r\nfunction checkCookies() {\r\n  var text = &quot;&quot;;\r\n  if (navigator.cookieEnabled == true) {\r\n    text = &quot;Cookies incluido.&quot;;\r\n  } else {\r\n     text = &quot;Cookies no incluido.&quot;;\r\n  }\r\n  document.getElementById(&quot;demo&quot;).innerHTML = text;\r\n}\r\n&lt;\/script&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onloadeddata<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 datos del archivo cargado. Controlador de eventos loadeddata, lo que ocurre cuando el audio\/v\u00eddeo ya se puede reproducir en la posici\u00f3n actual, pero la carga de datos multimedia contin\u00faa. El evento onloadeddata ocurre cuando se carga el marco multimedia, pero no garantiza que haya suficientes datos disponibles para comenzar la reproducci\u00f3n. El evento onloadeddata ocurre despu\u00e9s de onloadedmetadata y antes oncanplay.<\/p>\n<p style=\"text-align: justify;\">Al cargar medios, ocurren 7 eventos en el siguiente orden:<br \/>\n1. onloadstart<br \/>\n2. ondurationchange<br \/>\n3. onloadedmetadata<br \/>\n4. onloadeddata<br \/>\n5. onprogress<br \/>\n6. oncanplay<br \/>\n7. oncanplaythrough<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando haya datos disponibles para el fotograma actual (por video):<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onloadeddata=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Ejecute JavaScript cuando haya datos disponibles para el fotograma actual (por audio):<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;audio onloadeddata=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onloadedmetadata<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 metadatos del archivo cargado. Controlador de eventos loadedmetadata, que ocurre cuando se han cargado los metadatos (duraci\u00f3n, dimensiones del cuadro (para video) y texto de la pista) para el archivo de audio\/video especificado. El evento onloadedmetadata ocurre cuando se han cargado los metadatos del medio.<\/p>\n<p style=\"text-align: justify;\">Los metadatos de audio o v\u00eddeo constan de:<br \/>\nDuraci\u00f3n<br \/>\nDimensiones (v\u00eddeo)<br \/>\nPistas<\/p>\n<p style=\"text-align: justify;\">Ejecute JavaScript al cargar metadatos de video:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onloadedmetadata=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">En JavaScript:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nobject.onloadedmetadata = function(){myScript};\r\n<\/pre>\n<p style=\"text-align: justify;\">En JavaScript, use el m\u00e9todo addEventListener():<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nobject.addEventListener(&quot;loadedmetadata&quot;, myScript);\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onloadstart<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 comience a cargar el elemento. Controlador de eventos loadstart, que ocurre cuando comienza el proceso de descarga de un archivo de audio\/video.<\/p>\n<h2><span style=\"color: #008000;\">onmessage<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; aparece el mensaje. El evento onmessage ocurre cuando se recibe un mensaje a trav\u00e9s de una fuente de evento. El objeto de evento para el evento onmessage admite las siguientes propiedades:<br \/>\ndatos: contiene el mensaje real<br \/>\norigin \u2014 URL del documento que gener\u00f3 el evento.<br \/>\nLastEventId \u2014 ID del \u00faltimo mensaje visto en el flujo de eventos.<br \/>\nEventos relacionados:<br \/>\nonopen: ocurre cuando una conexi\u00f3n al servidor est\u00e1 abierta.<br \/>\nonerror: ocurre cuando ocurre un problema<\/p>\n<p style=\"text-align: justify;\">Cree un nuevo objeto EventSource y especifique la URL de la p\u00e1gina que env\u00eda las actualizaciones. Cada vez que se recibe una actualizaci\u00f3n, se produce el evento onmessage. Cuando ocurre el evento onmessage, coloque los datos recibidos en un elemento div con id=\u00bbmyDIV\u00bb:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar source = new EventSource(&quot;demo_sse.php&quot;);\r\nsource.onmessage = function(event) {\r\n  document.getElementById(&quot;myDIV&quot;).innerHTML += event.data + &quot;&lt;br&gt;&quot;;\r\n};\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmousedown<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 se presiona el bot\u00f3n del mouse. Controlador de eventos mousedown, que ocurre cuando se presiona el bot\u00f3n izquierdo del mouse. Diferencia con evento click es eso click es una combinaci\u00f3n de eventos mousedown y mouseup. Ejecuta c\u00f3digo JavaScript cuando ocurre un evento MouseDown; es decir, cuando el usuario presiona una tecla del mouse. Si onMouseDown regresa false, acci\u00f3n predeterminada (entrar en modo drag, entrando en modo selection o activaci\u00f3n de hiperv\u00ednculo) se cancela. La activaci\u00f3n se desencadena por un evento MouseDown en el hiperv\u00ednculo. Si el enlace est\u00e1 activado, cambia de color para indicar el nuevo estado. La acci\u00f3n predeterminada var\u00eda: iniciar arrastre, selecci\u00f3n de texto, desplazamiento o zoom (combinado con presionar la rueda cuando sea compatible)<\/p>\n<p style=\"text-align: justify;\">El evento onmousedown ocurre cuando el usuario presiona el bot\u00f3n del mouse sobre un elemento HTML. Orden de eventos para los botones izquierdo y central del mouse:<br \/>\nonmousedown<br \/>\nonmouseup<br \/>\n\u043f\u043e \u043a\u043b\u0438\u043a\u0443<br \/>\nOrden de eventos para el bot\u00f3n derecho del mouse:<br \/>\nonmousedown<br \/>\nonmouseup<br \/>\noncontextmenu<\/p>\n<p style=\"text-align: justify;\">type &#8211;  Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY- La ubicaci\u00f3n del cursor cuando ocurri\u00f3 el evento MouseDown.<br \/>\nwhich &#8211; Representa 1 para un clic izquierdo del mouse y 3 para un clic derecho del mouse.<br \/>\nmodifiers &#8211; Contiene una lista de teclas modificadoras presionadas cuando ocurri\u00f3 el evento MouseDown.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se presiona el bot\u00f3n del mouse sobre un p\u00e1rrafo:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;p onmousedown=&quot;myFunction()&quot;&gt;Click the text!&lt;\/p&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed el usuario puede mover la imagen en la p\u00e1gina HTML arrastr\u00e1ndola con el mouse. Su c\u00f3digo HTML define la imagen y la posiciona en una capa llamada container1. En el c\u00f3digo JavaScript, los controladores de eventos establecen propiedades de posicionamiento container1 cuando el usuario arrastra una imagen, creando una animaci\u00f3n. El atributo ID del elemento P que contiene la imagen se establece en container1, haciendo container1 Identificador \u00fanico del p\u00e1rrafo y la imagen. La etiqueta STYLE crea una capa para container1 y lo posiciona. El siguiente c\u00f3digo JavaScript define los controladores onMouseDown, onMouseUp y onMouseMove. Usando hojas de estilo\/style sheets, la imagen se define inicialmente y se posiciona as\u00ed:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;HEAD&gt;\r\n&lt;STYLE type=&quot;text\/css&quot;&gt;\r\n   #container1 {\r\nposition:absolute; left:200; top:200}\r\n&lt;\/STYLE&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;P ID=&quot;container1&quot;&gt;\r\n&lt;img src=&quot;backgrnd.gif&quot; name=&quot;myImage&quot; width=96 height=96&gt;\r\n&lt;\/P&gt;\r\n&lt;\/BODY&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">En este c\u00f3digo, el m\u00e9todo captureEvents captura eventos MouseUp y MouseDown. Las funciones DRAG_begindrag y DRAG_enddrag se llaman respectivamente para manejar estos eventos. Si el usuario presiona el bot\u00f3n izquierdo del mouse, se inicia la funci\u00f3n DRAG_begindrag, capturando los eventos MouseMove y decirle a la funci\u00f3n DRAG_drag que los procese. Luego asigna el valor de la propiedad pageX del evento MouseDown a la propiedad DRAG_lastX, el valor de la propiedad pageY a la propiedad DRAG_lastY y true &#8211; propiedad DRAG_dragging. La funci\u00f3n DRAG_drag calcula DRAG_dragging para garantizar que el evento MouseMove fue capturado por la funci\u00f3n DRAG_begindrag, luego usa el m\u00e9todo moveBy para posicionar el objeto y asigna valores a las propiedades DRAG_lastX y DRAG_lastY. Cuando el usuario suelta el bot\u00f3n izquierdo del mouse, la funci\u00f3n DRAG_enddrag deja de capturar eventos MouseMove. DRAG_enddrag luego garantiza que no se llame a ninguna otra funci\u00f3n configurando onmousemove en Null y DRAG_dragging &#8211; en false.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\ncontainer1.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);\r\ncontainer1.onmousedown=DRAG_begindrag;\r\ncontainer1.onmouseup=DRAG_enddrag;\r\nvar DRAG_lastX, DRAG_lastY, DRAG_dragging;\r\nfunction DRAG_begindrag(e) {\r\nif (e.which == 1) {\r\nwindow.captureEvents(Event.MOUSEMOVE);\r\n      window.onmousemove=DRAG_drag;\r\nDRAG_lastX=e.pageX;\r\nDRAG_lastY=e.pageY;\r\nDRAG_dragging=true;\r\nreturn false;\r\n}\r\nelse {\r\n\/*Aqu\u00ed hay algunos trabajos sobre c\u00f3mo manejar los clics derecho del mouse*\/\r\nreturn true;\r\n}\r\n}\r\nfunction DRAG_enddrag(e) {\r\nif (e.which == 1) {\r\nwindow.releaseEvents(Event.MOUSEMOVE);\r\n      window.onmousemove=null\r\nDRAG_dragging=false;\r\nreturn false;\r\n}\r\nelse {\r\n\/*Aqu\u00ed hay algunos trabajos sobre c\u00f3mo manejar los clics derecho del mouse*\/\r\nreturn true;\r\n}\r\n}\r\nfunction DRAG_drag(e) {\r\nif (DRAG_dragging) {\r\n\/*Esta funci\u00f3n se llama solo cuando se captura MOUSEMOVE*\/\r\nmoveBy(e.pageX-DRAG_lastX, e.pageY-DRAG_lastY);\r\nDRAG_lastX = e.pageX;\r\nDRAG_lastY = e.pageY;\r\nreturn false;\r\n}\r\nelse {\r\nreturn true;\r\n}\r\n}\r\n&lt;\/SCRIPT&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmouseenter<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 El puntero del mouse est\u00e1 sobre un elemento. Controlador de eventos mouseenter, que ocurre cuando el cursor del mouse ingresa al \u00e1rea del elemento. A diferencia de mouseover evento mouseenter no aparece (\u00abno burbujea\u00bb), es decir, no ocurre si el cursor del mouse toca un elemento secundario del elemento especificado. Evento onmouseenter Ocurre cuando el puntero del mouse ingresa a un elemento. Evento onmouseenter a menudo se usa junto con el evento onmouseleave, que ocurre cuando el puntero del mouse abandona un elemento. El evento onmouseenter es similar al evento onmouseover. La diferencia es que el evento onmouseenter no aparece (no se propaga hacia arriba en la jerarqu\u00eda del documento).<\/p>\n\n<p style=\"text-align: justify;\">Un evento mouseenter enviado a cada elemento de la jerarqu\u00eda a medida que ingresan. Aqu\u00ed se env\u00edan 4 eventos a los cuatro elementos de la jerarqu\u00eda cuando el puntero llega al texto. Evento \u00fanico al pasar el mouse mouseover se env\u00eda al elemento m\u00e1s profundo del \u00e1rbol DOM, luego asciende en la jerarqu\u00eda hasta que un controlador lo cancela o llega a la ra\u00edz. Si hay una jerarqu\u00eda profunda, el n\u00famero de eventos enviados mouseover puede ser bastante grande y causar importantes problemas de rendimiento. En tales casos es mejor manejar los eventos mouseenter. En combinaci\u00f3n con el evento correspondiente mouseleave (que se activa en el elemento cuando el mouse abandona el \u00e1rea de contenido), evento mouseenter act\u00faa de manera muy similar a una pseudoclase CSS :hover.<\/p>\n<p style=\"text-align: justify;\">Llama a una funci\u00f3n cuando pasas el cursor sobre una imagen:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;img onmouseenter=&quot;bigImg(this)&quot; src=&quot;smiley.gif&quot; alt=&quot;Smiley&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">JavaScript:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nobject.onmouseenter = function(){myScript};\r\nJavaScript, using the addEventListener() method:\r\nobject.addEventListener(&quot;mouseenter&quot;, myScript);\r\n<\/pre>\n<p style=\"text-align: justify;\">Este ejemplo demuestra la diferencia entre los eventos onmousemove, onmouseenter y mouseover:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div onmousemove=&quot;myMoveFunction()&quot;&gt;\r\n  &lt;p id=&quot;demo1&quot;&gt;I will demonstrate onmousemove!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n&lt;div onmouseenter=&quot;myEnterFunction()&quot;&gt;\r\n  &lt;p id=&quot;demo2&quot;&gt;I will demonstrate onmouseenter!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n&lt;div onmouseover=&quot;myOverFunction()&quot;&gt;\r\n  &lt;p id=&quot;demo3&quot;&gt;I will demonstrate onmouseover!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">En el siguiente ejemplo trivial, el evento mouseenter se utiliza para cambiar el borde de un elemento div cuando el mouse ingresa al espacio asignado. Luego agrega un elemento a la lista con el n\u00famero de evento mouseenter o mouseleave.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;SCRIPT&gt;\r\nvar enterEventCount = 0;\r\nvar leaveEventCount = 0;\r\nconst mouseTarget = document.getElementById(&quot;mouseTarget&quot;);\r\nconst unorderedList = document.getElementById(&quot;unorderedList&quot;);\r\nmouseTarget.addEventListener(&quot;mouseenter&quot;, (e) =&gt; {\r\n  mouseTarget.style.border = &quot;5px dotted orange&quot;;\r\n  enterEventCount++;\r\n  addListItem(&quot;This is mouseenter event &quot; + enterEventCount + &quot;.&quot;);\r\n});\r\nmouseTarget.addEventListener(&quot;mouseleave&quot;, (e) =&gt; {\r\n  mouseTarget.style.border = &quot;1px solid #333&quot;;\r\n  leaveEventCount++;\r\n  addListItem(&quot;This is mouseleave event &quot; + leaveEventCount + &quot;.&quot;);\r\n});\r\nfunction addListItem(text) {\r\n  \/\/ Cree un nuevo nodo de texto usando el texto proporcionado\r\n  var newTextNode = document.createTextNode(text);\r\n  \/\/ Crear un nuevo elemento li\r\n  var newListItem = document.createElement(&quot;li&quot;);\r\n  \/\/ Agregar un nodo de texto a un elemento li\r\n  newListItem.appendChild(newTextNode);\r\n  \/\/ Agregue el elemento de lista reci\u00e9n creado a la lista\r\n  unorderedList.appendChild(newListItem);\r\n}\r\n&lt;SCRIPT&gt;\r\n&lt;style&gt;\r\n#mouseTarget {\r\n  box-sizing: border-box;\r\n  width: 15rem;\r\n  border: 1px solid #333;\r\n}\r\n&lt;\/style&gt;\r\n&lt;div id=&quot;mouseTarget&quot;&gt;\r\n  &lt;ul id=&quot;unorderedList&quot;&gt;\r\n    &lt;li&gt;No events yet!&lt;\/li&gt;\r\n  &lt;\/ul&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmouseleave<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 el puntero del mouse ha abandonado el elemento. Controlador de eventos mouseleave, que ocurre cuando el cursor del mouse sale del \u00e1rea del elemento. A diferencia de mouseout evento mouseenter no aparece (\u00abno burbujea\u00bb), es decir, no ocurre si el cursor del mouse toca un elemento secundario del elemento especificado. El evento onmouseleave ocurre cuando el puntero del mouse abandona el elemento. El evento onmouseleave se usa a menudo junto con el evento onmouseenter, que ocurre cuando el puntero del mouse ingresa a un elemento. El evento onmouseleave es similar al evento onmouseout. La diferencia es que el evento onmouseleave no aparece (no se propaga hacia arriba en la jerarqu\u00eda del documento).<\/p>\n<p style=\"text-align: justify;\">Un evento mouseleave se activa cuando el cursor de un manipulador (normalmente un rat\u00f3n) se mueve m\u00e1s all\u00e1 de los l\u00edmites de un elemento. mouseleave y mouseout similares, pero diferentes en eso mouseleave no flota, pero mouseout aparece. Esto significa que mouseleave se activa cuando el cursor se mueve m\u00e1s all\u00e1 de los l\u00edmites de un elemento y todos sus hijos, mientras mouseout se activa cuando el cursor sale de los l\u00edmites de un elemento o uno de sus elementos secundarios (incluso si el cursor todav\u00eda est\u00e1 dentro del elemento).<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando el puntero del mouse se mueve fuera de la imagen:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;img onmouseleave=&quot;normalImg(this)&quot; src=&quot;smiley.gif&quot; alt=&quot;Smiley&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">JavaScript:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nobject.onmouseleave = function(){myScript};\r\nJavaScript, using the addEventListener() method:\r\nobject.addEventListener(&quot;mouseleave&quot;, myScript);\r\n<\/pre>\n<p style=\"text-align: justify;\">Este ejemplo demuestra la diferencia entre los eventos onmousemove, onmouseleave y onmouseout:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div onmousemove=&quot;myMoveFunction()&quot;&gt;\r\n  &lt;p id=&quot;demo1&quot;&gt;I will demonstrate onmousemove!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n&lt;div onmouseleave=&quot;myLeaveFunction()&quot;&gt;\r\n  &lt;p id=&quot;demo2&quot;&gt;I will demonstrate onmouseleave!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n&lt;div onmouseout=&quot;myOutFunction()&quot;&gt;\r\n  &lt;p id=&quot;demo3&quot;&gt;I will demonstrate onmouseout!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">En la documentacion mouseout hay un ejemplo que ilustra la diferencia entre mouseout y mouseleave. El siguiente ejemplo muestra c\u00f3mo utilizar mouseout para simular el principio de delegaci\u00f3n de eventos mouseleave.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;ul id=&quot;test&quot;&gt;\r\n  &lt;li&gt;\r\n    &lt;ul class=&quot;leave-sensitive&quot;&gt;\r\n      &lt;li&gt;item 1-1&lt;\/li&gt;\r\n      &lt;li&gt;item 1-2&lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n  &lt;\/li&gt;\r\n  &lt;li&gt;\r\n    &lt;ul class=&quot;leave-sensitive&quot;&gt;\r\n      &lt;li&gt;item 2-1&lt;\/li&gt;\r\n      &lt;li&gt;item 2-2&lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n  &lt;\/li&gt;\r\n&lt;\/ul&gt;\r\n&lt;script&gt;\r\n  var delegationSelector = &quot;.leave-sensitive&quot;;\r\n  document.getElementById(&quot;test&quot;).addEventListener(\r\n    &quot;mouseout&quot;,\r\n    function (event) {\r\n      var target = event.target,\r\n        related = event.relatedTarget,\r\n        match;\r\n      \/\/ search for a parent node matching the delegation selector\r\n      while (\r\n        target &amp;&amp;\r\n        target != document &amp;&amp;\r\n        !(match = matches(target, delegationSelector))\r\n      ) {\r\n        target = target.parentNode;\r\n      }\r\n\r\n      \/\/ exit if no matching node has been found\r\n      if (!match) {\r\n        return;\r\n      }\r\n      \/\/ loop through the parent of the related target to make sure that it's not a child of the target\r\n      while (related &amp;&amp; related != target &amp;&amp; related != document) {\r\n        related = related.parentNode;\r\n      }\r\n      \/\/ exit if this is the case\r\n      if (related == target) {\r\n        return;\r\n      }\r\n      \/\/ the &quot;delegated mouseleave&quot; handler can now be executed\r\n      \/\/ change the color of the text\r\n      target.style.color = &quot;orange&quot;;\r\n      \/\/ reset the color after a small amount of time\r\n      setTimeout(function () {\r\n        target.style.color = &quot;&quot;;\r\n      }, 500);\r\n    },\r\n    false,\r\n  );\r\n  \/\/ function used to check if a DOM element matches a given selector\r\n  \/\/ the following code can be replaced by this IE8 compatible function: https:\/\/gist.github.com\/2851541\r\n  function matches(elem, selector) {\r\n    \/\/ the matchesSelector is prefixed in most (if not all) browsers\r\n    return elem.matchesSelector(selector);\r\n  }\r\n&lt;\/script&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmousemove<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; El puntero del rat\u00f3n se mueve sobre el elemento. Controlador de eventos mousemove, que ocurre cuando el puntero del mouse se mueve sobre un elemento.<br \/>\ntype &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY &#8211; La ubicaci\u00f3n del cursor cuando ocurri\u00f3 el evento MouseMove.<\/p>\n<p style=\"text-align: justify;\">JavaScript:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nobject.onmousemove = function(){myScript};\r\nJavaScript, using the addEventListener() method:\r\nobject.addEventListener(&quot;mousemove&quot;, myScript);\r\n<\/pre>\n<p style=\"text-align: justify;\">Llama a una funci\u00f3n cuando pasas el cursor sobre un elemento div:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div onmousemove=&quot;myFunction()&quot;&gt;Move the cursor over me&lt;\/div&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">El siguiente ejemplo utiliza eventos mousedown, mousemove y mouseup, permitiendo al usuario dibujar en el lienzo HTML. Su funcionalidad es sencilla: el grosor de la l\u00ednea se establece en 1 y el color es siempre negro. Cuando se carga la p\u00e1gina, las constantes myPics y context para almacenar una referencia al lienzo y al contexto 2D que usaremos para dibujar. El sorteo comienza cuando se activa el evento mousedown. Primero almacenamos las coordenadas xey del puntero del mouse en variables xey y luego configuramos isDrawing en true. Cuando el puntero del mouse se mueve por la p\u00e1gina, se activa el evento mousemove. Si isDrawing tiene un valor true, el controlador de eventos llama a la funci\u00f3n drawLine para dibujar una l\u00ednea desde los valores xey almacenados hasta la ubicaci\u00f3n actual. Cuando regresa la funci\u00f3n drawLine(), ajustamos las coordenadas y luego las almacenamos en las coordenadas xey. Evento mouseup dibuja el \u00faltimo segmento de l\u00ednea, establece xey en 0 y detiene el dibujo estableciendo isDrawing en false.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\n\/\/ When true, moving the mouse draws on the canvas\r\nlet isDrawing = false;\r\nlet x = 0;\r\nlet y = 0;\r\nconst myPics = document.getElementById(&quot;myPics&quot;);\r\nconst context = myPics.getContext(&quot;2d&quot;);\r\n\/\/ event.offsetX, event.offsetY gives the (x,y) offset from the edge of the canvas.\r\n\/\/ Add the event listeners for mousedown, mousemove, and mouseup\r\nmyPics.addEventListener(&quot;mousedown&quot;, (e) =&gt; {\r\n  x = e.offsetX;\r\n  y = e.offsetY;\r\n  isDrawing = true;\r\n});\r\nmyPics.addEventListener(&quot;mousemove&quot;, (e) =&gt; {\r\n  if (isDrawing) {\r\n    drawLine(context, x, y, e.offsetX, e.offsetY);\r\n    x = e.offsetX;\r\n    y = e.offsetY;\r\n  }\r\n});\r\nwindow.addEventListener(&quot;mouseup&quot;, (e) =&gt; {\r\n  if (isDrawing) {\r\n    drawLine(context, x, y, e.offsetX, e.offsetY);\r\n    x = 0;\r\n    y = 0;\r\n    isDrawing = false;\r\n  }\r\n});\r\nfunction drawLine(context, x1, y1, x2, y2) {\r\n  context.beginPath();\r\n  context.strokeStyle = &quot;black&quot;;\r\n  context.lineWidth = 1;\r\n  context.moveTo(x1, y1);\r\n  context.lineTo(x2, y2);\r\n  context.stroke();\r\n  context.closePath();\r\n}\r\n&lt;\/script&gt;\r\n&lt;style&gt;\r\ncanvas {\r\n  border: 1px solid black;\r\n  width: 560px;\r\n  height: 360px;\r\n}\r\n&lt;\/style&gt;\r\n&lt;h1&gt;Drawing with mouse events&lt;\/h1&gt;\r\n&lt;canvas id=&quot;myPics&quot; width=&quot;560&quot; height=&quot;360&quot;&gt;&lt;\/canvas&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmouseout<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; el puntero del rat\u00f3n sale del elemento. Controlador de eventos mouseout, que ocurre cuando el puntero del mouse se mueve m\u00e1s all\u00e1 de los l\u00edmites de un elemento. Ejecuta c\u00f3digo JavaScript cuando ocurre un evento MouseOut; es decir, cada vez que el puntero del mouse sale del \u00e1rea (en el mapa de imagen del cliente) o hiperv\u00ednculo. Si el puntero del mouse se mueve de un \u00e1rea del mapa de imagen del cliente a otra, primero recibir\u00e1 onMouseOut para la primera \u00e1rea y luego onMouseOver para la segunda \u00e1rea. Las etiquetas de \u00e1rea que utilizan onMouseOut deben tener un atributo HREF en la etiqueta AREA. Debe ser devuelto true en el controlador de eventos si desea establecer propiedades status o defaultStatus usando onMouseOver.<\/p>\n<p style=\"text-align: justify;\">El evento onmouseout ocurre cuando el puntero del mouse se mueve fuera de un elemento. El evento onmouseout se usa a menudo junto con el evento onmouseover, que ocurre cuando pasa el cursor sobre un elemento. El evento onmouseout es similar al evento onmouseleave. La diferencia es que el evento onmouseleave no aparece (no se propaga hacia arriba en la jerarqu\u00eda del documento). <\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY &#8211; La ubicaci\u00f3n del cursor cuando ocurri\u00f3 el evento MouseOut<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando el puntero del mouse se mueve fuera de la imagen:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;img onmouseout=&quot;normalImg(this)&quot; src=&quot;smiley.gif&quot; alt=&quot;Smiley&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">El siguiente ejemplo ilustra la diferencia entre los eventos mouseout y mouseleave. Un evento mouseleave a\u00f1adido a ul, colorear la lista de color p\u00farpura cada vez que el mouse sale ul. mouseout se agrega a la lista para colorear el elemento de destino de naranja cuando el mouse lo abandona. Cuando intente esto, encontrar\u00e1 que el mouseout se pasa a elementos de lista individuales y mouseleave \u2014 la lista completa, gracias a la jerarqu\u00eda de elementos y al hecho de que los elementos de la lista ocultan el subyacente ul.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\nconst test = document.getElementById(&quot;test&quot;);\r\n\/\/ Briefly make the list purple when the mouse moves off the\r\n\/\/ &lt;ul&gt; element\r\ntest.addEventListener(\r\n  &quot;mouseleave&quot;,\r\n  (event) =&gt; {\r\n    \/\/ highlight the mouseleave target\r\n    event.target.style.color = &quot;purple&quot;;\r\n\r\n    \/\/ reset the color after a short delay\r\n    setTimeout(() =&gt; {\r\n      event.target.style.color = &quot;&quot;;\r\n    }, 1000);\r\n  },\r\n  false,\r\n);\r\n\/\/ Briefly make an &lt;li&gt; orange when the mouse moves off of it\r\ntest.addEventListener(\r\n  &quot;mouseout&quot;,\r\n  (event) =&gt; {\r\n    \/\/ highlight the mouseout target\r\n    event.target.style.color = &quot;orange&quot;;\r\n\r\n    \/\/ reset the color after a short delay\r\n    setTimeout(() =&gt; {\r\n      event.target.style.color = &quot;&quot;;\r\n    }, 500);\r\n  },\r\n  false,\r\n);\r\n&lt;\/script&gt;\r\n&lt;ul id=&quot;test&quot;&gt;\r\n  &lt;li&gt;item 1&lt;\/li&gt;\r\n  &lt;li&gt;item 2&lt;\/li&gt;\r\n  &lt;li&gt;item 3&lt;\/li&gt;\r\n&lt;\/ul&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmouseover<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; El puntero del mouse se mueve sobre el elemento. Controlador de eventos mouseover, que ocurre cuando el cursor del mouse se coloca sobre un elemento. El evento onmouseover ocurre cuando el puntero del mouse ingresa a un elemento. El evento onmouseover se usa a menudo junto con el evento onmouseout, que ocurre cuando el puntero del mouse abandona un elemento. El evento onmouseover es similar al evento onmouseenter. La diferencia es que el evento onmouseenter no aparece (no se propaga hacia arriba en la jerarqu\u00eda del documento). Evento mouseover Se llama a un elemento cuando se utiliza un dispositivo se\u00f1alador (como un mouse o trackpad) para mover el cursor sobre el elemento o uno de sus elementos secundarios.<\/p>\n<p style=\"text-align: justify;\">Llama a una funci\u00f3n cuando pasas el cursor sobre una imagen:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;img onmouseover=&quot;bigImg(this)&quot; src=&quot;smiley.gif&quot; alt=&quot;Smiley&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">De forma predeterminada, el valor HREF de un ancla se muestra en la barra de estado en la parte inferior del navegador cuando el usuario pasa el mouse sobre el ancla. En el siguiente ejemplo, onMouseOver muestra un mensaje especial \u00abClick this if you dare.\u00bb<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;A HREF=&quot;http:\/\/home.netscape.com\/&quot; onMouseOver=&quot;window.status='Click this if you dare!'; return true&quot;&gt;Click me&lt;\/A&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmouseup<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; el bot\u00f3n del rat\u00f3n se suelta sobre el elemento. Controlador de eventos mouseup, que ocurre cuando se suelta el bot\u00f3n del mouse sobre un elemento. Si onMouseUp regresa false, La promoci\u00f3n se cancela por defecto. Por ejemplo, si onMouseUp devuelve false cuando un hiperv\u00ednculo est\u00e1 activo, el enlace no se incluye. Entonces si MouseUp ocurre cuando el hiperv\u00ednculo est\u00e1 inactivo (posiblemente cuando onMouseDown devuelve false), el enlace no est\u00e1 incluido. La activaci\u00f3n se desencadena por un evento MouseDown en el enlace. Si el enlace est\u00e1 activo, cambia de color para reflejar el nuevo estado. El evento onmouseup ocurre cuando se suelta el bot\u00f3n del mouse sobre un elemento.<\/p>\n<p style=\"text-align: justify;\">Evento mouseup Se llama a un elemento cuando se suelta un bot\u00f3n de un dispositivo se\u00f1alador (como un mouse o trackpad) mientras el puntero est\u00e1 dentro de \u00e9l. Eventos mouseup son lo opuesto a los eventos mousedown.<\/p>\n<p style=\"text-align: justify;\">Orden de eventos para los botones izquierdo y central del mouse:<br \/>\nonmousedown<br \/>\nonmouseup<br \/>\n\u043f\u043e \u043a\u043b\u0438\u043a\u0443<br \/>\nOrden de eventos para el bot\u00f3n derecho del mouse:<br \/>\nonmousedown<br \/>\nonmouseup<br \/>\noncontextmenu<\/p>\n<p style=\"text-align: justify;\">type &#8211; Indica el tipo de evento.<br \/>\ntarget &#8211; Indica el objeto al que se envi\u00f3 originalmente el evento.<br \/>\nlayerX, layerY, pageX, pageY, screenX, screenY &#8211; La ubicaci\u00f3n del cursor cuando ocurri\u00f3 el evento MouseUp.<br \/>\nwhich &#8211; Representa 1 para la tecla izquierda y 3 para la tecla derecha del mouse.<br \/>\nmodifiers &#8211; Contiene una lista de teclas modificadoras presionadas cuando ocurri\u00f3 el evento MouseUp.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se suelta el bot\u00f3n del mouse sobre un p\u00e1rrafo:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;p onmouseup=&quot;mouseUp()&quot;&gt;Click the text!&lt;\/p&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onmousewheel (onwheel)<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 Se utiliza la rueda del rat\u00f3n. Controlador de eventos wheel, que ocurre cuando la rueda del mouse se desplaza hacia adelante o hacia atr\u00e1s en un elemento. El evento onwheel ocurre cuando la rueda del mouse se coloca sobre un elemento. El evento onwheel tambi\u00e9n ocurre cuando el usuario se desplaza por la p\u00e1gina usando el panel t\u00e1ctil. Este evento reemplaza el evento de rueda del mouse obsoleto y no est\u00e1ndar. No confunda el evento rueda con el evento desplazamiento. El evento de la rueda no necesariamente env\u00eda un evento de desplazamiento. Por ejemplo, es posible que el elemento no se pueda desplazar en absoluto. Las acciones de zoom que utilizan la rueda o el trackpad tambi\u00e9n activan eventos de la rueda. El evento de desplazamiento no necesariamente es activado por el evento de rueda. Los elementos tambi\u00e9n se pueden desplazar usando el teclado, arrastrando la barra de desplazamiento o usando JavaScript.<\/p>\n\n<p style=\"text-align: justify;\">Incluso si el evento de la rueda activa el desplazamiento, los valores delta* en el evento de la rueda no reflejan necesariamente la direcci\u00f3n en la que se desplaza el contenido. Por lo tanto, no conf\u00ede en las propiedades delta* del evento rueda para obtener la direcci\u00f3n de desplazamiento. Detectar cambios de valores en su lugar ScrollLeft y ScrollTop objetivos en evento de desplazamiento.<\/p>\n<p style=\"text-align: justify;\">El evento Wheel se puede cancelar. Si se cancela el evento, no se produce desplazamiento ni zoom. Esto puede causar problemas de rendimiento porque el navegador tiene que esperar a que se procese cada evento de la rueda antes de desplazarse por el contenido. Esto se puede evitar configur\u00e1ndolo en pasivo: true al llamar a addEventListener(), lo que puede hacer que el navegador genere eventos de rueda no cancelables.<\/p>\n<p style=\"text-align: justify;\">Cuando el usuario desplaza la rueda del mouse sobre un div, cambia su tama\u00f1o de fuente:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndocument.getElementById(&quot;myDIV&quot;).addEventListener(&quot;wheel&quot;, myFunction);\r\nfunction myFunction() {\r\n  this.style.fontSize = &quot;35px&quot;;\r\n}\r\n<\/pre>\n<p style=\"text-align: justify;\">Este ejemplo muestra c\u00f3mo escalar un elemento usando la rueda del mouse (u otro dispositivo se\u00f1alador).<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\nfunction zoom(event) {\r\n  event.preventDefault();\r\n  scale += event.deltaY * -0.01;\r\n  \/\/ Restrict scale\r\n  scale = Math.min(Math.max(0.125, scale), 4);\r\n\r\n  \/\/ Apply scale transform\r\n  el.style.transform = `scale(${scale})`;\r\n}\r\nlet scale = 1;\r\nconst el = document.querySelector(&quot;div&quot;);\r\nel.onwheel = zoom;\r\n&lt;\/script&gt;\r\n&lt;style&gt;\r\nbody {\r\n  min-height: 100vh;\r\n  margin: 0;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\ndiv {\r\n  width: 105px;\r\n  height: 105px;\r\n  background: #cdf;\r\n  padding: 5px;\r\n}\r\n&lt;\/style&gt;\r\n&lt;div&gt;Scale me with your mouse wheel.&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onoffline<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 el navegador se ejecuta en modo fuera de l\u00ednea. Evento onoffline ocurre cuando el navegador se desconecta. Evento onoffline es lo contrario del evento ononline.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el navegador se desconecte:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onoffline=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ononline<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 el navegador se inicia en modo en l\u00ednea. Evento ononline ocurre cuando el navegador comienza a funcionar en l\u00ednea. Evento online es lo contrario del evento onoffline.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el navegador se inicie en l\u00ednea:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body ononline=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onpagehide<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; el usuario sale de la p\u00e1gina. El evento onpagehide ocurre cuando el usuario abandona una p\u00e1gina web. Hay varias formas de salir de una p\u00e1gina. Por ejemplo. hacer clic en un enlace, actualizar la p\u00e1gina, enviar un formulario, cerrar la ventana del navegador, etc. El evento onpagehide a veces se usa en lugar del evento onunload porque el evento onunload hace que la p\u00e1gina no se almacene en cach\u00e9. Para saber si una p\u00e1gina se carga directamente desde el servidor o est\u00e1 almacenada en cach\u00e9, puede utilizar la propiedad persisted objeto PageTransitionEvent. Esta propiedad regresa true, si la p\u00e1gina est\u00e1 almacenada en cach\u00e9 por el navegador, y false de lo contrario.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando el usuario abandona la p\u00e1gina web:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onpagehide=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onpageshow<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; el usuario navega a la p\u00e1gina. El evento onpageshow ocurre cuando el usuario navega a una p\u00e1gina web. El evento onpageshow es similar al onload, excepto que ocurre despu\u00e9s del evento onload cuando la p\u00e1gina se carga por primera vez. Adem\u00e1s, el evento onpageshow ocurre cada vez que se carga la p\u00e1gina, mientras que el onload no ocurre al cargar una p\u00e1gina desde el cach\u00e9. Para saber si una p\u00e1gina se carga directamente desde el servidor o est\u00e1 almacenada en cach\u00e9, puede utilizar la propiedad persisted objeto PageTransitionEvent. Esta propiedad regresa true, si la p\u00e1gina est\u00e1 almacenada en cach\u00e9 por el navegador, y false de lo contrario<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando el usuario navega a una p\u00e1gina web:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onpageshow=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onpaste<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 Se ha insertado contenido. El evento onpaste ocurre cuando el usuario pega alg\u00fan contenido en un elemento. El evento onpaste se usa con mayor frecuencia para elementos input con type=\u00bbtext\u00bb. El evento de pegado de la API del Portapapeles se activa cuando el usuario inicia una acci\u00f3n de \u00abpegar\u00bb a trav\u00e9s de la interfaz de usuario del navegador. Si el cursor est\u00e1 en un contexto editable (por ejemplo, en textarea o un elemento con el atributo contenteditable establecido en true), entonces la acci\u00f3n predeterminada es pegar el contenido del portapapeles en el documento en la posici\u00f3n del cursor. Un controlador de este evento puede acceder al contenido del portapapeles llamando al m\u00e9todo getData() en la propiedad clipboardData del evento. Para anular el comportamiento predeterminado (por ejemplo, pegar datos diferentes o convertir el contenido del portapapeles), el controlador de eventos debe anular la acci\u00f3n predeterminada usando event.preventDefault() y luego insertar manualmente los datos requeridos. Puede crear y enviar un evento de inserci\u00f3n sint\u00e9tico, pero esto no afectar\u00e1 el contenido del documento. Este evento aparece, se puede cancelar y se compone. Se utiliza s\u00f3lo para campos de entrada.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se inserta texto en un elemento input:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onpaste=&quot;myFunction()&quot; value=&quot;Paste something here&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando se inserte texto en el elemento p. (Tenga en cuenta que contenteditable est\u00e1 configurado en \u00abtrue\u00bb):<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;p contenteditable=&quot;true&quot; onpaste=&quot;myFunction()&quot;&gt;Try to paste something inside this paragraph.&lt;\/p&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Ejemplo<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\nconst target = document.querySelector(&quot;div.target&quot;);\r\ntarget.addEventListener(&quot;paste&quot;, (event) =&gt; {\r\n  event.preventDefault();\r\n  let paste = (event.clipboardData || window.clipboardData).getData(&quot;text&quot;);\r\n  paste = paste.toUpperCase();\r\n  const selection = window.getSelection();\r\n  if (!selection.rangeCount) return;\r\n  selection.deleteFromDocument();\r\n  selection.getRangeAt(0).insertNode(document.createTextNode(paste));\r\n  selection.collapseToEnd();\r\n});\r\n&lt;script&gt;\r\n&lt;div class=&quot;source&quot; contenteditable=&quot;true&quot;&gt;Copy text from this box.&lt;\/div&gt;\r\n&lt;div class=&quot;target&quot; contenteditable=&quot;true&quot;&gt;And paste it into this one.&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onpause<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 pausar la reproducci\u00f3n. Controlador de eventos pause, que ocurre cuando el usuario o el software pausan la reproducci\u00f3n de audio\/v\u00eddeo. Evento onpause ocurre cuando el audio\/v\u00eddeo est\u00e1 en pausa. Evento onpause tambi\u00e9n ocurre cuando el audio\/v\u00eddeo ha llegado al final.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando el v\u00eddeo haya sido pausado:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onpause=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onplay<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 iniciar la reproducci\u00f3n. Controlador de eventos play, que ocurre cuando se ha iniciado la reproducci\u00f3n de un archivo de audio\/v\u00eddeo.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el video comience a reproducirse:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onplay=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onplaying<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 reproducci\u00f3n de archivos. Controlador de eventos playing, que ocurre cuando ha comenzado la reproducci\u00f3n de un archivo de audio\/v\u00eddeo. Evento onplaying ocurre cuando comienza la reproducci\u00f3n de audio\/v\u00eddeo. Evento onplaying Tambi\u00e9n ocurre cuando el audio\/v\u00eddeo se reanuda despu\u00e9s de haber sido pausado o almacenado en el b\u00fafer.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando comience el video:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onplaying=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onprogress<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 obtener metadatos de archivos. Un controlador para el evento de progreso, que ocurre cuando el archivo de audio\/v\u00eddeo especificado se descarga del servidor. Evento onprogress ocurre cuando el navegador carga audio o v\u00eddeo.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n al cargar un v\u00eddeo:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onprogress=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onratechange<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; cambiar la velocidad de reproducci\u00f3n. Controlador de eventos ratechange, que ocurre cuando cambia la velocidad de reproducci\u00f3n de audio\/v\u00eddeo (por ejemplo, cuando el usuario cambia al modo de reproducci\u00f3n lenta o r\u00e1pida). Evento onratechange ocurre cuando cambia la velocidad de reproducci\u00f3n multimedia (por ejemplo, cuando el usuario cambia al modo de reproducci\u00f3n lenta o r\u00e1pida). Este evento lo genera la propiedad playbackRate del objeto Audio\/Video, que establece o devuelve la velocidad de reproducci\u00f3n actual del audio\/video.<\/p>\n<p style=\"text-align: justify;\">Llame a una funci\u00f3n cuando cambie la velocidad de reproducci\u00f3n del video:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onratechange=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onreset<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 restablecimiento de datos completado. Controlador de eventos reset, que ocurre cuando el formulario se borra cuando se hace clic en el bot\u00f3n Reset. Ejecuta c\u00f3digo JavaScript cuando ocurre un evento reset; es decir, cuando el usuario restaura los valores de los elementos del formulario (haciendo clic en el bot\u00f3n Reset).<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se restablece el formulario:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;form onreset=&quot;myFunction()&quot;&gt;\r\n  Enter name: &lt;input type=&quot;text&quot;&gt;\r\n  &lt;input type=&quot;reset&quot;&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">El siguiente ejemplo genera un objeto Text con valor predeterminado \u00abCA\u00bb y bot\u00f3n reset. Si el usuario ingresa una abreviatura de estado en un objeto Text y hace clic en el bot\u00f3n reset, se restablece el valor original \u00abCA\u00bb. Entrenador de animales onReset el formulario muestra un mensaje indicando que los valores predeterminados han sido restaurados.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;FORM NAME=&quot;form1&quot; onReset=&quot;alert('Defaults have been restored.')&quot;&gt;\r\nState:\r\n&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;state&quot; VALUE=&quot;CA&quot; SIZE=&quot;2&quot;&gt;&lt;P&gt;\r\n&lt;INPUT TYPE=&quot;reset&quot; VALUE=&quot;Clear Form&quot; NAME=&quot;reset1&quot;&gt;\r\n&lt;\/FORM&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onresize<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 cambiar el tama\u00f1o de un elemento. Ejecuta c\u00f3digo JavaScript cuando ocurre un evento resize; es decir, cuando el usuario o script ha cambiado el tama\u00f1o de la ventana o marco. Evento onresize ocurre cuando se ha cambiado el tama\u00f1o de la ventana del navegador. Consejo: Para obtener el tama\u00f1o de un elemento, utilice las propiedades clientWidth, clientHeight, InnerWidth, InnerHeight, OuterWidth, OuterHeight, OffsetWidth y\/o OffsetHeight. Este controlador se env\u00eda despu\u00e9s de que el HTML haya terminado de renderizarse con los nuevos tama\u00f1os de ventana internos. Esto permite colocar elementos y anclajes con nombre para que tengan el tama\u00f1o y la ubicaci\u00f3n final solicitados, las propiedades SRC de la imagen se pueden restaurar din\u00e1micamente, etc.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando se cambia el tama\u00f1o de la ventana del navegador:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onresize=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Usando el m\u00e9todo addEventListener() para adjuntar un evento de \u00abcambio de tama\u00f1o\u00bb a un objeto de ventana.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nwindow.addEventListener(&quot;resize&quot;, myFunction);\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed la funci\u00f3n open_now crea una ventana myWin y captura eventos Resize. El controlador onResize llama a la funci\u00f3n alert_me, que muestra un mensaje si el usuario cambia el tama\u00f1o de la ventana myWin.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nfunction open_now(){\r\nvar myWin;\r\nmyWin=window.open(&quot;&quot;,&quot;displayWin&quot;,&quot;width=400,height=300,resizable=yes,\r\nmenubar=no,location=no,alwaysRaised=yes&quot;);\r\nvar text=&quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Test&lt;\/title&gt;&lt;\/head&gt;&quot;\r\n+&quot;&lt;body bgcolor=white&gt;&lt;h1&gt;Please resize me&lt;\/h1&gt;&lt;\/body&gt;&quot;\r\n+&quot;&lt;\/html&gt;&quot;;\r\nmyWin.document.write(text);\r\nmyWin.captureEvents(Event.RESIZE);\r\nmyWin.onresize=alert_me;\r\n}\r\nfunction alert_me(){\r\nalert(&quot;You resized me! \\nNow my outer width: &quot; + this.outerWidth +\r\n&quot;\\n and my outer height: &quot; +this.outerHeight);\r\nthis.focus();\r\n}\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onscroll<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 Desplazando el contenido del elemento. Evento onscroll Ocurre cuando se desplaza la barra de desplazamiento del elemento. Consejo: utilice la propiedad de estilo de desbordamiento de CSS para crear una barra de desplazamiento para un elemento. El evento de desplazamiento se activa cuando se desplaza el elemento. Para determinar cu\u00e1ndo se ha completado el desplazamiento, observe el evento de desplazamiento del elemento.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se desplaza un elemento div:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div onscroll=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Cambie entre nombres de clases en diferentes posiciones de desplazamiento. Cuando el usuario se desplaza hacia abajo 50 p\u00edxeles desde la parte superior de la p\u00e1gina, el nombre de clase \u00abtest\u00bb se agrega al elemento (y se elimina cuando se desplaza hacia arriba nuevamente).<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nwindow.onscroll = function() {myFunction()};\r\nfunction myFunction() {\r\n  if (document.body.scrollTop &gt; 50 || document.documentElement.scrollTop &gt; 50) {\r\n    document.getElementById(&quot;myP&quot;).className = &quot;test&quot;;\r\n  } else {\r\n    document.getElementById(&quot;myP&quot;).className = &quot;&quot;;\r\n  }\r\n}\r\n<\/pre>\n<p style=\"text-align: justify;\">Inserte un elemento cuando el usuario se haya desplazado hacia abajo 350px (agregue una clase slideUp):<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nwindow.onscroll = function() {myFunction()};\r\nfunction myFunction() {\r\n  if (document.body.scrollTop &gt; 350 || document.documentElement.scrollTop &gt; 350) {\r\n    document.getElementById(&quot;myImg&quot;).className = &quot;slideUp&quot;;\r\n  }\r\n}\r\n<\/pre>\n<p style=\"text-align: justify;\">El siguiente ejemplo muestra c\u00f3mo utilizar el evento de desplazamiento para detectar cuando el usuario se desplaza por un elemento:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\nconst element = document.querySelector(&quot;div#scroll-box&quot;);\r\nconst output = document.querySelector(&quot;p#output&quot;);\r\nelement.addEventListener(&quot;scroll&quot;, (event) =&gt; {\r\n  output.textContent = &quot;Scroll event fired!&quot;;\r\n  setTimeout(() =&gt; {\r\n    output.textContent = &quot;Waiting on scroll events...&quot;;\r\n  }, 1000);\r\n});\r\n&lt;\/script&gt;\r\n&lt;div id=&quot;scroll-box&quot; style=&quot;overflow: scroll; height: 100px; width: 100px; float: left;&quot;&gt;\r\n  &lt;p style=&quot;height: 200px; width: 200px;&quot;&gt;Scroll me!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n&lt;p style=&quot;text-align: center;&quot; id=&quot;output&quot;&gt;Waiting on scroll events...&lt;\/p&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">El siguiente ejemplo muestra c\u00f3mo utilizar la propiedad del controlador de eventos onscroll para detectar cuando el usuario se desplaza:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script&gt;\r\nconst element = document.querySelector(&quot;div#scroll-box&quot;);\r\nconst output = document.querySelector(&quot;p#output&quot;);\r\nelement.onscroll = (event) =&gt; {\r\n  output.textContent = &quot;Element scroll event fired!&quot;;\r\n  setTimeout(() =&gt; {\r\n    output.textContent = &quot;Waiting on scroll events...&quot;;\r\n  }, 1000);\r\n};\r\n&lt;\/script&gt;\r\n&lt;div id=&quot;scroll-box&quot; style=&quot;overflow: scroll; height: 100px; width: 100px; float: left;&quot;&gt;\r\n  &lt;p style=&quot;height: 200px; width: 200px;&quot;&gt;Scroll me!&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n&lt;p id=&quot;output&quot; style=&quot;text-align: center;&quot;&gt;Waiting on scroll events...&lt;\/p&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onsearch<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 b\u00fasqueda completada. Evento onsearch ocurre cuando el usuario presiona la tecla \u00abENTER\u00bb o el bot\u00f3n \u00abx\u00bb en un elemento input con type=\u00bbsearch\u00bb.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n al enviar una b\u00fasqueda:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;search&quot; onsearch=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onseeked<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; La b\u00fasqueda ha terminado. Controlador de eventos seeked, que ocurre cuando el usuario ha completado el movimiento a una nueva posici\u00f3n de reproducci\u00f3n de audio\/v\u00eddeo. Evento onseeked ocurre cuando el usuario busca una nueva posici\u00f3n en los medios.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el usuario busque una nueva posici\u00f3n en el v\u00eddeo:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onseeked=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Este ejemplo demuestra la diferencia entre el evento onseeking y onseeked:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onseeking=&quot;myFunction()&quot; onseeked=&quot;mySecondFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Usando la propiedad currentTime objeto Video para mostrar la posici\u00f3n actual durante la reproducci\u00f3n cuando el usuario haya terminado de moverse\/moverse a una nueva posici\u00f3n:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\/\/ Get the video element:\r\nconst video = document.getElementById(&quot;myVideo&quot;);\r\n\/\/ Attach a seeked event to the video element:\r\nvideo.addEventListener(&quot;seeked&quot;, myFunction);\r\n\/\/ Function to display the time position of the playback:\r\nfunction myFunction() {\r\ndocument.getElementById(&quot;demo&quot;).innerHTML = video.currentTime;\r\n}\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onseeking<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 la b\u00fasqueda est\u00e1 activa. Controlador de eventos seeking, que ocurre cuando el usuario comienza a moverse a una nueva posici\u00f3n de reproducci\u00f3n de audio\/video. Evento onseeking ocurre cuando el usuario comienza a buscar una nueva posici\u00f3n en los medios.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el usuario comience a moverse o moverse a una nueva posici\u00f3n en el video:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onseeking=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onselect<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 seleccionando alg\u00fan texto o valor. Controlador de eventos select, que es cuando el usuario selecciona alg\u00fan texto dentro de un elemento usando el mouse o el teclado.  Evento onselect ocurre despu\u00e9s de seleccionar alg\u00fan texto en un elemento. Evento onselect m\u00e1s utilizado para elementos input type=\u00bbtext\u00bb o textarea.<\/p>\n<p style=\"text-align: justify;\">Aqu\u00ed onSelect utilizado en el objeto valueField Text para llamar a una funci\u00f3n selectState.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;INPUT TYPE=&quot;text&quot; VALUE=&quot;&quot; NAME=&quot;valueField&quot; onSelect=&quot;selectState()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se selecciona alg\u00fan texto:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;input type=&quot;text&quot; onselect=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Usando el m\u00e9todo select() ingrese un objeto de texto HTML DOM para seleccionar alg\u00fan contenido de campo de texto. Cuando esto sucede, el evento se dispara onselect, que activa la funci\u00f3n de alerta.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\/\/ Select the contents of a text field\r\nfunction mySelectFunction() {\r\n  document.getElementById(&quot;myText&quot;).select();\r\n}\r\n\/\/ Alert some text when the text in the text field has been selected\r\nfunction myAlertFunction() {\r\n  alert(&quot;You selected some text!&quot;);\r\n}\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onshow<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 visualizaci\u00f3n del art\u00edculo. Controlador de eventos show, que ocurre cuando el elemento menu aparece como un men\u00fa contextual. Evento onshow ocurre cuando un elemento menu aparece como un men\u00fa contextual. <\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el elemento del men\u00fa se muestra como un men\u00fa contextual:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div contextmenu=&quot;mymenu&quot;&gt;\r\n  &lt;p&gt;Right-click inside this box to see the context menu!\r\n  &lt;menu type=&quot;context&quot; id=&quot;mymenu&quot; onshow=&quot;myFunction()&quot;&gt;\r\n    &lt;menuitem label=&quot;Refresh&quot; onclick=&quot;window.location.reload();&quot;&gt;&lt;\/menuitem&gt;\r\n  &lt;\/menu&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onstalled<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; El navegador no puede recibir datos multimedia por ning\u00fan motivo stalled, lo que ocurre cuando el navegador intenta recuperar datos multimedia, pero no est\u00e1n disponibles. Evento onstalled Ocurre cuando el navegador intenta recuperar datos multimedia inaccesibles.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el navegador intente recuperar medios no disponibles:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onstalled=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onsubmit<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 confirmaci\u00f3n del env\u00edo de los datos del formulario. Controlador de eventos submit, que ocurre cuando se env\u00eda el formulario. Ejecuta c\u00f3digo JavaScript cuando ocurre un evento submit; es decir, cuando el usuario env\u00eda el formulario al servidor. Se puede utilizar onSubmit para impedir el env\u00edo de formularios; para hacer esto, coloque el operador return, regresando false, a este controlador de eventos. Cualquier otro valor permite enviar el formulario. En ausencia de un operador return se enviar\u00e1 el formulario.<\/p>\n<p style=\"text-align: justify;\">Aqu\u00ed onSubmit llama a una funci\u00f3n validate para calcular los datos enviados. Si los datos son correctos se env\u00eda el formulario; de lo contrario el formulario no se env\u00eda.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;FORM onSubmit=&quot;return validate(this)&quot;&gt;\r\n...\r\n&lt;\/FORM&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se env\u00eda un formulario:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;form onsubmit=&quot;myFunction()&quot;&gt;\r\n  Enter name: &lt;input type=&quot;text&quot;&gt;\r\n  &lt;input type=&quot;submit&quot;&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onsuspend <\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 detener la extracci\u00f3n de metadatos. Controlador de eventos suspend, lo que ocurre cuando la recepci\u00f3n de datos de archivos multimedia se detiene antes de que se complete la descarga completa por cualquier motivo. Evento onsuspend Ocurre cuando el navegador no recibe datos multimedia. El evento onsuspend ocurre cuando se impide o suspende una descarga.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando el navegador no recibe datos multimedia:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onsuspend=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ontimeupdate<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 cambiar la posici\u00f3n (tiempo) de reproducci\u00f3n del archivo, es decir, rebobinar el archivo. Controlador de eventos timeupdate, que ocurre cuando la posici\u00f3n de reproducci\u00f3n de audio\/v\u00eddeo ha cambiado (por ejemplo, cuando el usuario ha seleccionado un punto de reproducci\u00f3n mucho m\u00e1s alejado del actual). Evento ontimeupdate ocurre cuando cambia el tiempo de reproducci\u00f3n multimedia. Evento ontimeupdate ocurre durante la reproducci\u00f3n multimedia. Evento ontimeupdate Ocurre cuando el usuario mueve la posici\u00f3n de reproducci\u00f3n.<\/p>\n<p style=\"text-align: justify;\">Llamar a la funci\u00f3n cuando el tiempo de reproducci\u00f3n ha cambiado:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video ontimeupdate=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Usando la propiedad currentTime para establecer la posici\u00f3n de reproducci\u00f3n actual en 5 segundos:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndocument.getElementById(&quot;myVideo&quot;).currentTime = 5;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">ontoggle<\/span><\/h2>\n<p style=\"text-align: justify;\">&#8211; el usuario abre o cierra el elemento details controlador de eventos toggle, que ocurre cuando el usuario abre o cierra un elemento details. Evento ontoggle ocurre cuando el usuario abre o cierra un elemento details. Elemento details especifica informaci\u00f3n adicional que el usuario puede ver u ocultar si lo solicita.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando se abre o cierra un elemento details:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;details ontoggle=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onunload<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 Se complet\u00f3 la descarga, tras lo cual se cerr\u00f3 el documento. Evento onunload ocurre despu\u00e9s de que la p\u00e1gina se ha descargado (o se ha cerrado la ventana del navegador). onunload ocurre cuando el usuario sale de la p\u00e1gina (haciendo clic en un enlace, enviando un formulario, cerrando la ventana del navegador, etc.). Nota. Evento onunload tambi\u00e9n se activa cuando el usuario recarga la p\u00e1gina (y el evento onload). Usar onUnload con etiquetas BODY o FRAMESET, por ejemplo, BODY onUnload=\u00bb&#8230;\u00bb. Respecto a marcos y conjunto de marcos &#8211; controlador onUnload el marco (colocado en la etiqueta BODY) aparece antes de que aparezca el controlador onUnload conjunto de marcos (colocados en la etiqueta FRAMESET).<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando el usuario sube un documento:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;body onunload=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Aqu\u00ed onUnload llama a una funci\u00f3n cleanUp realizar alg\u00fan procesamiento al finalizar el trabajo, cuando el usuario sale de la p\u00e1gina (la cierra):<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;BODY onUnload=&quot;cleanUp()&quot;&gt;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onvolumechange<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 Se ha cambiado el volumen. Controlador de eventos volumechange, que ocurre cuando se cambia el valor del volumen del sonido (incluso silenciar completamente el sonido). Evento onvolumechange ocurre cuando cambia el volumen del medio. Evento onvolumechange ocurre cuando el volumen aumenta o disminuye. El evento onvolumechange ocurre cuando el audio est\u00e1 silenciado o activado.<\/p>\n<p style=\"text-align: justify;\">Llamar a una funci\u00f3n cuando cambie el volumen del v\u00eddeo:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onvolumechange=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Usando la propiedad Volume para configurar el volumen:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndocument.getElementById(&quot;myVideo&quot;).volume = 0.2;\r\n<\/pre>\n<h2><span style=\"color: #008000;\">onwaiting<\/span><\/h2>\n<p style=\"text-align: justify;\">\u2013 esperando a que se reanude la reproducci\u00f3n. Controlador de eventos waiting, que ocurre cuando un archivo multimedia se detiene pero se espera que se reanude (por ejemplo, cuando el archivo se detiene para almacenar en el buffer los datos restantes). Evento onwaiting ocurre cuando los medios deben esperar el siguiente fotograma.<\/p>\n<p style=\"text-align: justify;\">Llame a la funci\u00f3n cuando el v\u00eddeo est\u00e9 detenido porque es necesario almacenar en el b\u00fafer el siguiente fotograma:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;video onwaiting=&quot;myFunction()&quot;&gt;\r\n<\/pre>\n\n","protected":false},"excerpt":{"rendered":"<p>Los controladores de eventos deben usarse de manera correcta; es recomendable no escribirlos directamente en los atributos de las etiquetas, sino instalarlos en los archivos incluidos con c\u00f3digo JavaScript. Si se utiliza la biblioteca jQuery, el nombre de los controladores debe escribirse sin el prefijo on.<\/p>\n","protected":false},"author":1,"featured_media":247,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,114,7],"tags":[128,13,127],"class_list":{"0":"post-246","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-htmlverstka","8":"category-javascript","9":"category-programmirovanie","10":"tag-eventos","11":"tag-html","12":"tag-javascript"},"_links":{"self":[{"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/posts\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":2,"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":269,"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/posts\/246\/revisions\/269"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/media\/247"}],"wp:attachment":[{"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/planeta21vek.ru\/elina732\/isp\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}