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>
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.onload=initEditor;");
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "HtmlAreaScript", sb.ToString(), true);}
}
如果是UpdatePanel提交,則還須在提交後執行下面語句,重新初始化編輯器:
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "HtmlAreaScript", "initEditor();", true);