aplicar estilo com execCommand em texto arbitrário
-
27-10-2019 - |
Pergunta
Eu sei como executar execCommand
em algum texto selecionado, mas há uma maneira de executar em algum outro texto em minha div contenteditable
?
Solução
No IE, sim.Em outros navegadores, não.
Todos os principais navegadores de desktop implementam alguma forma de document.execCommand()
, que atua apenas na seleção do usuário.No IE, o objeto TextRange
também possui um método execCommand
.Por exemplo, o seguinte tornará o conteúdo do texto de um elemento verde quando o usuário passar o cursor sobre ele:
<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>
Outras dicas
Caso você não saiba, o .execCommand
é uma função javascript não padrão do IE que deve ser evitada.
Se você nos informar para que deseja usá-lo, podemos sugerir uma alternativa compatível com os padrões.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow