1

假设我有一个内容可编辑的 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新行保存它时,文本文件中会丢失。在保存之前我将如何操作文本?

4

1 回答 1

1

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

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

配方如下:

  • 全选#board's div children
  • 然后获取text value您放置在数组中的每个
  • 加入价值观yourArray.join('\r\n')
于 2013-10-06T07:31:55.503 回答