写一个bbs,涉及到显示用户发言的问题。如何避免浏览器解释用户输入的html甚至script呢?



用到<pre/>标签,但是有个问题:pre内的内容不会自动换行。一行被弄的老长老长。显然不行。



忽然又想起老朋友<textarea/>。当初用过这个,但是关于尺寸的问题,没有得到好的解决。今天灵感来了——使用style属性来指定大小:

<textarea style="WIDTH: 100%; HEIGHT: 100%;" readonly="true">

<%# DataBinder.Eval(Container.DataItem, "内容") %>

</textarea>

但是这样还是有个问题,无法抵挡

</textarea>

<H1>一级标题</H1>

<textarea>



看来,只能够在服务器端动手了。tnnd,我要Server.HtmlEncode()了。最终,我在aspx页面内这样做,现在是罩了个铁布衫了哦。

<textarea style="WIDTH: 100%; HEIGHT: 100%;" readonly>

<%# Server.HtmlEncode(Convert.ToString(DataBinder.Eval(Container.DataItem, "内容"))) %>

</textarea>
  • 收藏
  • 评论
  • 举报