Domanda

so come eseguire execCommand su un testo selezionato, ma c'è un modo per eseguire su un altro testo nel mio div contenteditable?

È stato utile?

Soluzione

In IE, sì.In altri browser no.

Tutti i principali browser desktop implementano una qualche forma di document.execCommand(), che agisce solo sulla selezione dell'utente.In IE, l'oggetto TextRange ha anche un metodo execCommand.Ad esempio, quanto segue renderà verde il contenuto del testo di un elemento quando l'utente passa il cursore su di esso:

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

Altri suggerimenti

Nel caso in cui non ne sei a conoscenza, .execCommand è una funzione javascript non standard di IE che dovrebbe essere evitata.

Se ci dici per cosa desideri utilizzarlo, potremmo suggerirti un'alternativa conforme agli standard.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top