Pergunta

Eu sei como executar execCommand em algum texto selecionado, mas há uma maneira de executar em algum outro texto em minha div contenteditable?

Foi útil?

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
scroll top