Я хочу получить текстовый контент из contentEditable div через javascript. Каковы варианты этого? Я пробовал innerHTML, но он не работает.
Получить текстовое содержимое из contenteditable div через javascript
Ответ 1
используйте jQuery и сделайте
var content = $('#my-contenteditable-div').html();
также найдите эти ссылки:
Ответ 2
Почему бы не использовать textContent для этого:
var contenteditable = document.querySelector('[contenteditable]'),
text = contenteditable.textContent;
Ответ 3
lblMailContent
- это идентификатор редактируемого поля.
var details= document.getElementById("lblMailContent").innerHTML;
Поместите этот код в clientClick
. Это сработало для меня.
Ответ 4
Я решил это так, потому что мне нужен html-ввод:
message = $('<div>').html(
$('#area').html()
.replace(/<(div|p|br)[^<]*?>/g, '<br />')
.replace(/<([(i|a|b|u)^>]+)>(.*?)<\/\1>/gim,
function(v) { return '' + escape(v) + ''; })
).text();
Позволяет использовать теги A, B, I, U и заменяет Divs и Ps на BRs
Ответ 5
К сожалению, я обнаружил, что innerText
- единственный способ сохранить новые строки в контентных узлах dom. То, что я делаю (проверено только в хроме на данный момент), следующее:
var innerText = editableDiv.innerText // using innerText here because it preserves newlines
if(innerText[innerText.length-1] === '\n')
innerText = innerText.slice(0,-1) // get rid of weird extra newline
return innerText
Ответ 6
Использование текстового контента, работающего отлично в большинстве случаев
Рабочий пример: jsfiddle
(проверено в Safari)