Sto provando a creare un div contenteditable HTML5, che accetta solo un testo normale. Sto utilizzando jQuery html e di seguito:Il div HTML contenteditable accetta solo testo in chiaro
HTML
<div contenteditable="true"></div>
jQuery
(function() {
$('[contenteditable]').on('paste', function (e) {
e.preventDefault();
var text = null;
text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste Your Text Here');
document.execCommand("insertText", false, text);
});
});
Ma non funziona per tutti i browser. getData
non supportato nel browser Internet Explorer. Ho provato molte soluzioni menzionate qui su StackOverflow, ma nessuno ha funzionato per me.
Ho anche provato
(function() {
$('[contenteditable]').on('paste', function (e) {
e.preventDefault();
var text = null;
if (window.clipboardData && clipboardData.setData) {
text = window.clipboardData.getData('text');
} else {
text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste Your Text Here');
}
document.execCommand("insertText", false, text);
});
});
Ma in questo caso document.execCommand("insertText", false, text);
non funziona per IE.
C'è un modo per rendere possibile accettare i dati dopo aver filtrato i tag HTML, in modo che chiunque immetta i dati in div modificabili per tipo, incolla, rilascia o in qualsiasi altro modo. Dovrebbe essere visualizzato come testo.
guardare con questo concetto: '$ ('
Ciao, I \' m HTML
') .text(); '. Questo dovrebbe darti "Ciao, sono HTML". –Immagino che sia la cosa diversa di cui stai parlando. Nel nostro caso dobbiamo incollare i contenuti. Convertirlo in testo semplice e visualizzarlo in div. – Tarun
Il mio commento copre la parte "convertirlo in testo normale". Non ho alcuna esperienza con l'API JavaScript per quello che stai cercando di fare, ma mentre ho letto la domanda, ho difficoltà a capire cosa stai avendo problemi con. Ad esempio, "_now_ working for IE" dovrebbe leggere come "non funziona per IE?" –