La interfaz CustomEvent  representa eventos inicializados por una aplicación para cualquier propósito.

Nota: Esta característica está disponible en Web Workers.

Constructor

CustomEvent()

Crea un CustomEvent.

Propiedades

CustomEvent.detail Read only
Cualquier dato transmitido al inicializar el evento.

Esta interfaz hereda las propiedades de su padre, Event:

event.altKey 
Devuelve un valor indicando si la tecla <alt> fue pulsada durante el evento.
event.bubbles 
Devuelve un valor que indica si el evento se propaga hacia arriba a través del DOM o no.
event.button 
Devuelve el botón del ratón.
event.cancelBubble  
Devuelve un valor que indica si la propagación hacia arriba fue cancelada o no.
event.cancelable 
Devuelve un valor que indica si el evento se puede cancelar.
event.charCode 
Devuelve el valor Unicode de una tecla de carácter que fue apretada como parte de un evento keypress.
event.clientX 
Devuelve la posición horizontal del evento.
event.clientY 
Devuelve la posición vertical del evento.
event.ctrlKey 
Devuelve un valor que indica si la tecla <Ctrl> fue apretada durante el evento.
event.currentTarget 
Devuelve una referencia al objetivo actual registrado para el evento.
event.detail 
Devuelve detalles sobre el evento, dependiendo del tipo de evento.
event.eventPhase 
Utilizado para indicar qué fase del flujo del evento es actualmente en proceso de evaluación.
event.explicitOriginalTarget 
El objetivo del evento (específico a Mozilla).
event.isChar 
Devuelve un valor que indica si el evento produce o no una tecla de carácter.
event.keyCode 
Devuelve el valor Unicode de una tecla que no es caracter en un evento keypress o cualquier tecla en cualquier otro tipo de evento de teclado.
event.layerX 
Devuelve la coordenada horizontal del evento relativo a la capa actual.
event.layerY 
Devuelve la coordenada vertical del evento relativo a la capa actual.
event.metaKey 
Devuelve un valor booleano indicando si la meta tecla fue presionada durante un evento.
event.originalTarget 
El objetivo principal de un evento, antes de cualquier reapunte (Especifiación Mozilla).
event.pageX 
Devuelve la coordenada horizontal del evento, relativo al documento completo.
event.pageY 
Devuelve la coordenada vertical del evento, relativo al documento completo.
event.relatedTarget 
Identifica un objetivo secundario para el evento.
event.screenX 
Devuelve la coordenada horizontal del evento en la pantalla.
event.screenY 
Devuelve la coordenada vertical del evento en la pantalla.
event.shiftKey 
Devuelve un valor booleano indicando si la tecla <shift> fue presionada cuando el evento fue disparado.
event.target 
Devuelve una referencia al objetivo en la cual el evento fue originalmente enviado.
event.timeStamp 
Devuelve el momento de creación del evento.
event.type 
Devuelve el nombre del evento (distingue mayúsculas y minúsculas).
event.view 
El atributo vista identifica la AbstractView del cual el evento fue generado.
event.which 
Devuelve el valor Unicode de la tecla en un evento del teclado, sin importar el tipo de tecla que se presionó.

Métodos

CustomEvent.initCustomEvent()

Inicializar un objeto CustomEvent. Si el evento ya ha sido enviado, este método no hace nada.

Esta interfaz hereda los métodos de su padre, Event:

Especificaciones

Especificación Estado Comentario
DOM
La definición de 'CustomEvent' en esta especificación.
Living Standard Definición inicial.

Compatibilidad con navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

        
Característica Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)

Soporte básico

(Yes) (Yes) 6 9 11 5.1 (533.3)
Constructor CustomEvent() 15 (Yes) 11 Sin soporte 11.60 Nightly build (535.2)
Disponible en workers (Yes) (Yes) 48 (48) (Yes) (Yes) (Yes)
     
Característica Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Soporte básico ? (Yes) ? ? ? ?
Soporte total (Yes) (Yes) 48.0 (48) (Yes) (Yes) (Yes)

Disparar desde código privilegiado a código no-privilegiado

Al disparar un CustomEvent desde código privilegiado (una extensión) a un código no-privilegiado (una página web),  deben considerarse algunos problemas de seguridad. Firefox y otras aplicaciones Gecko restringen al objeto creado desde un contexto siendo directamente utilizado por otro, el cual automáticamente evitará los agujeros de seguridad, pero estas restricciones también pueden impedir que su código se ejecute como esperaba.

Al crear un objeto CustomEvent, debes crear el objeto desde la misma ventana. El atributo detail de tu CustomEvent estará sujeto a las mismas restricciones. Los valores de String y Array serán legibles sin restricciones por el content, pero los objetos personalizados no lo harán. Al utilizar un objeto personalizado, necesitaras definir que atributos de ese objeto se pueden leer desde la secuencia de comandos de contenido usando  Components.utils.cloneInto().

// doc es una referencia al contenido del documento
function dispatchCustomEvent(doc) {
  var eventDetail = Components.utils.cloneInto({foo: 'bar'}, doc.defaultView);
  var myEvent = doc.defaultView.CustomEvent("mytype", eventDetail);
  doc.dispatchEvent(myEvent);
}

Pero hay que tener en cuenta que exponer una función permitirá que el script content lo ejecute con privilegios de chrome, lo que puede abrir una vulnerabilidad de seguridad.

Ver también

Etiquetas y colaboradores del documento

Etiquetas: 
 Colaboradores en esta página: AlePerez92, daniville
 Última actualización por: AlePerez92,