我有一个样式漂亮的框,用于编辑一些原始文本:
这个盒子是 <div>
与 contenteditable="true"
。我不想使用textarea
因为风格实在是太烦人了。另外,<div>
具有一个奇妙的属性,它可以在用户键入时自动缩放以包含文本。
我的 div 问题是我似乎无法从中获取原始文本。当用户编辑它时,浏览器会插入 <div>
和 <br>
s 创建换行符,因此当我使用 innerHTML
获取文本时实际上我得到的是一堆 HTML 而不是原始文本。如果我使用 innerText
相反,它不会保留任何换行符,我得到以下输出:
"Foo bar: PowThis field is: AlignedWith: This fieldThree empty lines"
浏览器是否提供了任何非黑客、非变通的解决方案来获取显示的文本?
一个有趣的观察是我可以选择文本并将其复制到文本编辑器中:
最佳答案
此解释:http://clubajax.org/plain-text-vs-innertext-vs-textcontent/ plaintext、innerText 和 textContent 函数解释了根据您的浏览器获取文本的方式有所不同。
所以恐怕简单的答案是:不。这取决于您使用什么浏览器来获取缩进等。
关于javascript - 如何从 div 中获取与所看到的文本完全相同的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33913024/