2011-07-02 10 views
5

He estado llamando al execCommand en el documento para poner el texto seleccionado en negrita o para establecer su color. Pero recientemente necesito usar execCommand en un cierto rango y no en el texto seleccionado.execCommand en el rango

¿Puedo hacer esto y, en caso afirmativo, cómo?

Respuesta

7

Puede, pero tiene que ser la selección. Así, en otras palabras, hacer lo siguiente:

  • tienda la selección actual
  • hacer una nueva selección en base a la Range
  • Realice el execCommand
  • restaurar la selección anterior

Usted puede crear un selection desde rangos (navegadores no IE) con lo siguiente:

var selection = window.getSelection(); 
selection.removeAllRanges(); 
selection.addRange(range); 

Con IE, puede ejecutar directamente execCommand en objetos TextRange, por lo que todo este proceso no será necesario.

+0

Eso suena bien. Una pregunta (como soy un principiante en javascript), ¿cómo harías una nueva selección? Gracias. – Joshua

+1

@Joshua He actualizado mi respuesta con un pequeño ejemplo – Niklas

+0

Gracias, eso está funcionando casi perfectamente ahora. :) – Joshua

Cuestiones relacionadas