javascript - mdn - MouseEvent.path equivalente en Firefox y Safari
mouseevent html (1)
Estoy usando Polymer 1.0 y cuando hay un clic en un botón en Chrome se genera un MouseEvent
. Este objeto MouseEvent
tiene una propiedad de path
que es una matriz ordenada de elementos principales para el botón presionado. En Firefox y Safari, sin embargo, se genera un click
que no tiene una propiedad de path
. ¿Hay una propiedad equivalente del objeto click
que me da la misma información?
No está disponible, pero si realmente desea tener esta propiedad, puede extender el prototipo nativo del objeto Evento de la siguiente manera:
if (!("path" in Event.prototype))
Object.defineProperty(Event.prototype, "path", {
get: function() {
var path = [];
var currentElem = this.target;
while (currentElem) {
path.push(currentElem);
currentElem = currentElem.parentElement;
}
if (path.indexOf(window) === -1 && path.indexOf(document) === -1)
path.push(document);
if (path.indexOf(window) === -1)
path.push(window);
return path;
}
});
Sin embargo, si yo fuera usted, no ampliaría el prototipo. En su lugar, crearía una función como la mencionada anteriormente.
También cambiaría Event.prototype a MouseEvent.prototype si solo desea cubrir esos tipos de eventos.