保存本地文本文件,检测新的行和contenteditable div的空格

时间:2013-10-06 06:52:58

标签: javascript dom

假设我有一个可信的div,并将此文本作为输入

<div id="board" contenteditable="true">
   <div>ab</div>
   <div>   cd</div>
   <div></div>
   <div>e   f</div>
</div>

JS

var text = "";

if (typeof window.getSelection != "undefined") {
    var sel = window.getSelection();
    sel.selectAllChildren(el);
    text = sel.toString();
    sel.removeAllRanges();
} 

else if (document.body.createTextRange) {
    var textRange = document.body.createTextRange();
    textRange.moveToElementText(el);
    text = textRange.text;
}

警告text将为我提供所需的格式(使用新行和空格)。但是当我使用filesaver.js保存它时,文本文件中会丢失新行。在保存之前我将如何操作文本?

1 个答案:

答案 0 :(得分:1)

text = sel.toString();返回什么?如果您希望文本“可以换行”,则必须在某些时候包含\r\n

如果sel.selectAllChildren(el);返回一个集合,则必须迭代它。 text = sel.toString()可以使用空分隔符加入所有值,例如“”。您的分隔符必须为\r\n

配方如下:

  • 选择所有#board's div children
  • 然后获取您放置在数组中的每个text value
  • 使用yourArray.join('\r\n')
  • 加入值