问题:在项目开发时,有时需要获取 冒泡或捕获 过程的所有元素
解决方案:
Chrome通过event.path获取:
element.onClick(event) {
const ev = window.event || event;
const path = ev.path;
}
event.path属性在Chrome和Opera浏览器下没问题,但是在Firefox和Safari中发现event并没有path属性;所以在Firefox和Safari中我们需要通过composedPath属性获取
element.onClick(event) {
const ev = window.event || event;
const path = event.composedPath && event.composedPath();
console.log(path);
}
所以,最终解决方案为:
element.onClick(event) {
const ev = window.event || event;
const path = event.path || (event.composedPath && event.composedPath());
console.log(path);
}