Pregunta: El valor de retorno de event.composedPath() contiene claves de propiedad que son difíciles de recuperar. He intentado todo lo que sé y no puedo llegar a ellos.
En el siguiente ejemplo simplificado, utilicé Object.getOwnPropertyNames() para devolver una matriz de todas las propiedades del objeto. el primer cuadro de alerta muestra los valores, 0,1,2,3,4,5,length . El segundo cuadro de alerta está en blanco.
<div style="width: 200px; height: 200px; background-color: yellow"> <a data-target="0" href="">click me</a> </div> <script> document.querySelector('[data-target]').addEventListener( 'click', event => { const elementsInPath = event.composedPath(); alert(Object.getOwnPropertyNames(elementsInPath)); alert(Object.getOwnPropertyNames(elementsInPath[0])); }); </script> Salida: en Devtools puse un reloj en elementsInPath . El siguiente resultado es lo que aparece. Estoy tratando de devolver las cadenas, "a" "div" "cuerpo" "html" "documento" "ventana". Como se muestra arriba, no se enumeran con getOwnPropertyNames() . He probado todos los métodos de segmentación normales para recuperarlos y no puedo acceder a ellos. En última instancia, lo que estoy tratando de hacer es determinar si un ancla 'a' está en la ruta para poder usar event.preventDefault() para finalizar el evento.