Javascript 如何为HTML textarea元素的一些内部文本设置背景色?

Javascript 如何为HTML textarea元素的一些内部文本设置背景色?,javascript,html,dom,range,Javascript,Html,Dom,Range,它看起来像是选中了一些文本,但当您单击它或移动光标时,背景色不会消失 您不能为此使用textarea元素。 只需创建一个contentEditable div,并使用javascript设置其样式。它可能是一个设置为true的div,可能是一个在事件期间设置样式的div,并按照其他建议将其设置为contentEditable。关于textarea,我读过类似的问题。检查它是否符合您的要求。使用Firebug并分析HTML和CSS,看看它们做了什么。可能不仅仅是背景色,我通常使用Range的sur


它看起来像是选中了一些文本,但当您单击它或移动光标时,背景色不会消失

您不能为此使用textarea元素。
只需创建一个contentEditable div,并使用javascript设置其样式。

它可能是一个设置为true的
div,可能是一个在事件期间设置样式的div,并按照其他建议将其设置为contentEditable。关于textarea,我读过类似的问题。检查它是否符合您的要求。

使用Firebug并分析HTML和CSS,看看它们做了什么。可能不仅仅是背景色,我通常使用Range的surroundContents方法来突出显示HTML元素中的文本,但它不适用于表单元素(它只支持纯文本)。我想是这样的。但如果这样做,还需要为低端浏览器想出一种方法。但我发现facebook没有使用这种方法。那么,FB是如何做到的呢?如果删除textarea节点,您可以看到突出显示仍然存在-它位于textarea的后面。您可以选择它,因为它有不可见的文本!突出显示实际上是文本区域内容的克隆,字体颜色设置为透明,背景颜色设置为选择突出显示颜色。一个选择的出现实际上只是在背景中进行的一个漂亮的视觉效果——facebook显然根本没有写入或修改textarea