Al seleccionar textos en documentos HTML, se puede comenzar desde un elemento DOM a otro elemento, posiblemente pasando por otros elementos en el camino. Usando DOM API, es posible obtener el rango de la selección, los textos seleccionados, e incluso el elemento padre de todos los elementos DOM seleccionados (utilizando commonAncestorContainer o parentElement() basado en el navegador utilizado). Sin embargo, no hay manera de que yo sepa que puede enumerar todos aquellos que contienen elementos de los textos seleccionados, además de obtener el elemento monoparental que los contiene a todos. Usar el elemento primario y atravesar los nodos hijos no lo hará, ya que puede haber otros hermanos que no estén seleccionados dentro de este elemento primario.Obtener todos los elementos de bloque DOM para textos seleccionados
Entonces, ¿hay alguna manera de que pueda obtener todos estos elementos que contienen los textos seleccionados? Estoy interesado principalmente en obtener los elementos de bloque (p, h1, h2, h3, ... etc.) pero creo que si hay una manera de obtener todos los elementos, entonces puedo revisarlos y filtrarlos para obtener lo que querer. Doy la bienvenida a cualquier idea y sugerencia.
Gracias.
No fue la solución perfecta como dijiste, pero me dio una idea de cómo hacerlo. Por lo tanto, elegí esta como la respuesta más correcta a mi necesidad. Realmente lo aprecio – cria
Esta es una respuesta decente, pero no funcionará en IE <9. Podría hacer una verificación de que la selección existe antes de llamar a 'selection.getRangeAt (0);' también (usando la propiedad 'rangeCount' de la selección es más fácil). –
Hay muchos problemas que no he abordado, esto es solo para comenzar a encaminarse en la dirección correcta. Su biblioteca requiere 22k de javascript sin comprimir para manejarlo realmente y si lo necesitara, simplemente usaría eso. –