over mdn event javascript google-chrome firefox safari polymer-1.0

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.