Quando l'utente modifica un contenteditable div
e preme alcuni tasti, vorrei sovrascrivere il comportamento predefinito. Ad esempio, voglio inserire un'interruzione di linea normale quando l'utente preme INVIO. lo faccio usando document.execCommand("insertText",...)
Internet Explorer alternativo a document.execCommand ("insertText", ...), per l'inserimento del testo che può essere annullato/ripristinato dall'utente
Questo è l'unico modo che ho trovato finora per fare questa azione annullabile e ripristinabile dall'utente.
<div id="editor" contenteditable="true" style="white-space:pre-wrap">
Some text....
</div>
<script>
$("#editor").keydown(function(evt){
console.log(evt.keyCode);
if(evt.keyCode==13){
document.execCommand("insertText",false,"\n");
evt.preventDefault();
evt.stopPropagation();
}
}
</script>
Questo codice funziona bene su chrome e firefox. Ma, ad esempio, non supporta "inserttext". Ci sarebbe un modo per inserire il testo con, ad esempio, in modo che l'utente possa annullare it?
quali versioni di IE ti importa? IE 11 ha comandi di azione iniziale/finale-annullabile, ma le versioni precedenti no. –
@TimDown, qualsiasi miglioramento rispetto alla mia situazione attuale è accolto :) Naturalmente, è meglio se funziona anche per le vecchie versioni, ad esempio, ma vale a dire 11 è meglio di niente. – Oli
@TimDown, per favore pubblica la tua risposta. Sarebbe molto utile. – Oli