It's not available, but if you really would like to have this property, then you could extend the native prototype of the Event object like so:
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;
}
});
However if I were you, I wouldn't extend the prototype - I would create a function like mentioned above instead.
Also I would change Event.prototype to MouseEvent.prototype if you want to cover only those types of events.
It seems like the e.composedPath() method might be a cross-browser version of e.path
. It works in Chrome and Firefox. Not sure about Safari.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With