如何在
Asp.net
中使用
HtmlArea
编辑器
HtmlArea
是一款很简洁的
WTYSWTYG
编辑器,以前我用的是
FreeTextBox,
缺点很多,运行速度慢,架构太复杂,不支持
ajax
等等,前面还特地写了一篇文章《
Ajax
中的
UpdatePanel
与
Freetextbox
兼容问题的初步解决方法》,现在终于痛下决心砍了。
HtmlArea
是纯
JS+Html
的编辑器,理论上可以套在任何语言平台上,经过实际使用可以和
Asp.Net
2.0 + Ajax
很好的结合,现在本博客系统已经拿它当作文章编辑器了,下面就是具体安装步骤。
首先下载
HtmlArea3.0,
解压到
Web
项目的某个目录。
lang/gb.js
是中文语言文件,官方默认是
ANSI
编码的,如果你的
web.config
设置为
utf-8(
默认
),
则需要用记事本打开
gb.js
,另存为
utf-8
格式。
以下是引用片段:
<script type="text/javascript"> _editor_url = "../HtmlArea/"; _editor_lang = "gb";</script>
<script type="text/javascript" src="../HtmlArea/htmlarea.js"></script>
<asp:TextBox ID="HtmlArea" CssClass="htmlarea" runat="server" Height="200px" TextMode="MultiLine" Width="100%"></asp:TextBox>
|
<script type=text/javascript> _editor_url = "../HtmlArea/"; _editor_lang = "gb"; </script>
以下是引用片段:
protected void Page_Load(object sender, EventArgs e){
if (!Page.IsPostBack) {
StringBuilder sb = new StringBuilder();
sb.Append("var editor = null;");
sb.Append("function initEditor() {");
sb.Append("editor = new HTMLArea('" + ArticleBody1.FindControl("HtmlArea").ClientID + "');");
sb.Append("editor.generate();}");sb.Append("document.body.οnlοad=initEditor;");
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "HtmlAreaScript", sb.ToString(), true);}
}
|
如果是
UpdatePanel
提交,则还须在提交后执行下面语句,重新初始化编辑器:
以下是引用片段:
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "HtmlAreaScript", "initEditor();", true); |