2011-10-16 161 views
5

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

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

感谢您的任何帮助。

回答

0

我相信这是唯一可能通过使用一些div或其他可修改的HTML元素,而不是你的textarea。使用Javascript,您可以添加textarea的功能。

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

0

不能在Textarea内部完成,你将不得不去做一个wysiwyg编辑器或类似的东西。这很容易让你自己做出一个。 这是一个很好的教程:

Devgurus wysiwyg tutorial

14

div元素

<div contentEditable="true"> 
</div 

这样你就可以在任何需要的方式格式化您的输入使用上CONTENTEDITABLE属性,只是不要忘了正确转义数据。

+0

这仅适用于支持HTML5的浏览器,它似乎是合理的,但不会解决跨浏览器的可靠性问题。 – MacMac

+3

@lolwut:'contentEditable'在所有主要(桌面)浏览器中都支持[相当长时间](http://caniuse.com/contenteditable)。 – You

2

只是一个想法;如果你只是想让用户看到他们的反应是什么样的,你可以从这个网站上得到一个提示,并在评论框上方/下方有一个“预览”div。您可以使用onKeyUp将代码放入div中,以便在用户输入时保持日期。这并不完美,但如果你不想使用WYSIWYG,它可能会像你想要的那样好。

这就是说,contentEditable +所见即所得选项可能更友好,更简单,恕我直言。

相关问题