applica lo stile con execCommand su testo arbitrario
-
27-10-2019 - |
Domanda
so come eseguire execCommand
su un testo selezionato, ma c'è un modo per eseguire su un altro testo nel mio div contenteditable
?
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.