¿Cómo seleccionar un nodo en un rango con navegadores webkit?

Actualmente estoy trabajando en una solución WYSIWYG y necesito una función para seleccionar correctamente con un rango un nodo (me refiero al nodo en sí, no solo a su contenido)

DOM lvl2 claramente tiene una función para estow3.org/ranges y definir eso

range.selectNodeContents() // Select the contents within a node
y
range.selectNode() //Select a node and its contents

El problema es que cuando selectNode () funciona perfectamente con Firefox o incluso con ie9, parece imposible lograrlo con cualquier navegador Webkit (al final Chrome y Safari). En Webkit, tanto selectNodeContents () como selectNode () seleccionan solo el contenido del nodo (lo que de acuerdo con las especificaciones parece ser un error)

Para hacerlo funcionar, intenté emular el objetivo selectNode () usando
range.setStartBefore(node);<br>range.setEndAfter(node);
pero el resultado sigue siendo el mismo, funciona en todas partes (es decir,> 8 por supuesto) pero no en los navegadores webkit ...

Si quieres probarlo hice un pequeño jsfiddle con el que puedes jugar.aquí (solo abre la consola y mira el resultado de console.warn que no es el mismo en el kit de web: /)

Busqué mucho, pero no puedo encontrar la manera de seleccionar un nodo completo en los navegadores webkit. Por milagro, ¿algunos de ustedes sabrían una forma de hacerlo o incluso algún consejo para continuar mi búsqueda? : /

ps: sé "rangy" lib pero no puedo usarlo en mi proyecto y, por lo que leo en la fuente, ni siquiera estoy seguro de que traten con eso de todos modos: /

Respuestas a la pregunta(1)

Su respuesta a la pregunta