通过javascript从contenteditable div获取文本内容

时间:2010-08-29 05:21:18

标签: javascript html

我想通过javascript从contentEditable div中检索文本内容。这样做有哪些选择?我尝试过innerHTML,但它不起作用。

7 个答案:

答案 0 :(得分:39)

为什么不使用textContent:

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

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

答案 1 :(得分:13)

不幸的是,我发现innerText是保留可信任dom节点中换行符的唯一方法。我现在所做的(目前只在Chrome中测试过)是:

 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

答案 2 :(得分:7)

使用jQuery并执行

var content = $('#my-contenteditable-div').html();

也查找这些链接:

http://west-wind.com/Weblog/posts/778165.aspx

Extracting text from a contentEditable div

答案 3 :(得分:5)

lblMailContent是可编辑字段的ID。

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

将此代码放入clientClick。它对我有用。

答案 4 :(得分:2)

我这样解决了,因为我需要html-input:

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并用BR替换Div和P

答案 5 :(得分:0)

使用文字内容,在大多数情况下都能正常使用 工作示例:jsfiddle(在Safari中验证)

答案 6 :(得分:0)

使用此:

function textFromDiv(selector) {
  const element = document.querySelector(selector);
  const text = element.html().replace(/<div>/g,"\n").replace(/<\/div>/g,"").replace(/<br>/g,"\n");
  return text;
}```