Подтвердить что ты не робот

Получить текстовое содержимое из contenteditable div через javascript

Я хочу получить текстовый контент из contentEditable div через javascript. Каковы варианты этого? Я пробовал innerHTML, но он не работает.

4b9b3361

Ответ 2

Почему бы не использовать textContent для этого:

var contenteditable = document.querySelector('[contenteditable]'),
    text = contenteditable.textContent;

http://jsfiddle.net/E4W8y/1/

Ответ 3

lblMailContent - это идентификатор редактируемого поля.

var details= document.getElementById("lblMailContent").innerHTML;

Поместите этот код в clientClick. Это сработало для меня.

Ответ 4

Я решил это так, потому что мне нужен html-ввод:

message = $('<div>').html(
   $('#area').html()
   .replace(/<(div|p|br)[^<]*?>/g, '&lt;br /&gt;')
   .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)