aplicar estilo con execCommand en un texto arbitrario
-
27-10-2019 - |
Pregunta
sé cómo ejecutar execCommand
en algún texto seleccionado, pero hay una manera de ejecutar en algún otro texto en mi contenteditable
div ?
Solución
En IE, sí.En otros navegadores, no.
Todos los principales navegadores de escritorio implementar alguna forma de document.execCommand()
, que actúa sólo en la selección del usuario.En IE, el TextRange
el objeto también tiene un execCommand
método.Por ejemplo, el siguiente será convertir el contenido de texto de un elemento de color verde cuando el usuario pasa el cursor sobre él:
<div id="test">Here is a test div</div>
<script type="text/javascript">
var div = document.getElementById("test");
div.onmouseover = function() {
if (document.body.createTextRange) {
var textRange = document.body.createTextRange();
textRange.moveToElementText(div);
textRange.execCommand("foreColor", false, "green");
}
};
</script>
Otros consejos
En caso de que no lo sepa, .execCommand
es una función de JavaScript no estándar de IE que debe evitarse.
Si nos dice para qué desea usarlo, podríamos sugerirle una alternativa que cumpla con los estándares.