如何在文本区域内显示 HTML 格式? [复制]

Posted

技术标签:

【中文标题】如何在文本区域内显示 HTML 格式? [复制]【英文标题】:How can I show HTML formatting inside a textarea? [duplicate] 【发布时间】:2011-12-08 19:03:24 【问题描述】:

我的代码可以让您在 textarea 中使用粗体、下划线、删除线或斜体来格式化文本。但它显示 html 标签而不是实际格式化它。我知道一旦我在 div 中输出它,它就会被格式化,但我想在用户编写文本时显示格式。

如何启用格式化? javascript 很好,我现在正在使用 JQuery。如果有其他选择,我也宁愿不使用 WYSIWYG 编辑器。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

在 div 元素上使用 contentEditable 属性

 <div contentEditable="true"> 
 </div

通过这种方式,您可以以任何所需的方式格式化您的输入,只是不要忘记正确转义数据。

【讨论】:

这仅适用于支持 HTML5 的浏览器,它是合理的,但不会解决跨浏览器的可靠性问题。 @lolwut: contentEditable 已在所有主要(桌面)浏览器中支持quite some time。【参考方案2】:

只是一个想法;如果您只想让用户看到他们的响应会是什么样子,您可以从该站点获取提示,并在评论框上方/下方有一种“预览” div。您可以使用 onKeyUp 将代码放入 div 以使其在用户键入时保持最新状态。它并不完美,但如果您不想使用 WYSIWYG,它可能会尽可能好。

话虽如此,contentEditable + WYSIWYG 选项可能对用户更友好,更简单,恕我直言。

【讨论】:

【参考方案3】:

我相信只有使用一些 div 或其他可样式化的 html 元素而不是你的 textarea 才有可能。使用 Javascript,您将添加 textarea 的功能。

您如何在 SO 上使用像这样的格式化系统?在我看来,它比伪 WYSIWYG 更优雅。

【讨论】:

【参考方案4】:

用 div 替换 textarea 并启用设计模式。 或者你可以使用jquery插件http://plugins.jquery.com/project/designMode

【讨论】:

【参考方案5】:

不能在 Textarea 内完成,您必须制作所见即所得的编辑器或类似的东西。自己做一个很容易。 这是一个很好的教程:

Devgurus wysiwyg tutorial

【讨论】:

以上是关于如何在文本区域内显示 HTML 格式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在文本区域内移动光标到结束

占位符文本在文本区域内被剪切

文本区域内的 HTML5 富文本

如何在文本区域中显示数组内容?

如何在文本区域中显示文本的结尾

让用户选择在文本区域中显示多少行 [HTML] [JAVASCRIPT?]