javascript - 如何从 div 中获取与所看到的文本完全相同的文本?

标签 javascript jquery html css

我有一个样式漂亮的框,用于编辑一些原始文本:

Screenshot

这个盒子是 <div>contenteditable="true" 。我不想使用textarea因为风格实在是太烦人了。另外,<div>具有一个奇妙的属性,它可以在用户键入时自动缩放以包含文本。

我的 div 问题是我似乎无法从中获取原始文本。当用户编辑它时,浏览器会插入 <div><br> s 创建换行符,因此当我使用 innerHTML 获取文本时实际上我得到的是一堆 HTML 而不是原始文本。如果我使用 innerText相反,它不会保留任何换行符,我得到以下输出:

"Foo bar:        PowThis field is:  AlignedWith:           This fieldThree empty lines"

浏览器是否提供了任何非黑客、非变通的解决方案来获取显示的文本?


一个有趣的观察是我可以选择文本并将其复制到文本编辑器中:

Screenshot

最佳答案

此解释:http://clubajax.org/plain-text-vs-innertext-vs-textcontent/ plaintext、innerText 和 textContent 函数解释了根据您的浏览器获取文本的方式有所不同。

所以恐怕简单的答案是:不。这取决于您使用什么浏览器来获取缩进等。

关于javascript - 如何从 div 中获取与所看到的文本完全相同的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33913024/

相关文章:

javascript - Cordova:无法使用 Cordova 在 Android 上复制文件

javascript - express 4 : Middleware branching

javascript - 选择 div 中除单击的元素之外的所有其他元素

javascript - 模式窗口/背景的问题

html - Flux with React Audio Component 以一种方式流动

javascript - 如何重置 "clear search"上的下拉值

javascript - 空网格中的 Sencha Ext JS ArrayStore

javascript - 使用jquery抓取图像SRC attr

javascript - 统一的 div 高度和按钮对齐方式

javascript - 如何记录用户操作然后在 JavaScript 中重新执行它们?