以下为引用的内容:
<script language="c#" runat="Server"> public class FCKeditor { private string sBasePath; private string sInstanceName; private string sWidth; private string sHeight; private string sToolbarSet; private string sValue;
private ArrayList oConfig;
public FCKeditor() { sBasePath = "/admin/FCKeditor/"; sWidth = "100%"; sHeight = "200"; sToolbarSet = "Default"; sValue = ""; oConfig = new ArrayList(); }
public string BasePath { get{ return sBasePath; } set{ sBasePath = value; } }
public string InstanceName { get{ return sInstanceName; } set{ sInstanceName = value; } }
public string Width { get{ return sWidth; } set{ sWidth = value; } }
public string Height { get{ return sHeight; } set{ sHeight = value; } }
public string ToolbarSet { get{ return sToolbarSet; } set{ sToolbarSet = value; } }
public string Value { get{ return sValue; } set{ sValue = value; } }
public void Config(string configKey, string configValue) { oConfig.Add(new DictionaryEntry(configKey, configValue)); }
public void Create(string instanceName) { HttpContext.Current.Response.Write("<div>"); if(IsCompatible()) { string sFile=""; string sLink=""; if(HttpContext.Current.Request["fcksource"] == "true"){ sFile = "fckeditor.original.html";} else{ sFile = "fckeditor.html"; }
sLink = sBasePath + "editor/" + sFile + "?InstanceName=" + instanceName;
if(sToolbarSet != "") sLink = sLink + "&Toolbar="+sToolbarSet;
HttpContext.Current.Response.Write("<input type='hidden' id='" + instanceName + "' name='" + instanceName + "' value='" + HttpContext.Current.Server.HtmlEncode( sValue ) + "' style='display:none' />"); HttpContext.Current.Response.Write("<input type='hidden' id='"+instanceName+"___Config' value='"+GetConfigFieldString()+"' style='display:none' />"); HttpContext.Current.Response.Write("<iframe id='"+instanceName+"___Frame' src='"+sLink+"' width='"+sWidth+"' height='"+sHeight+"' frameborder='no' scrolling='no'></iframe>"); } else { string sWidthCSS=""; string sHeightCSS=""; if(sWidth.IndexOf('%')!=-1){ sWidthCSS = sWidth; } else{ sWidthCSS = sWidth+"px"; }
if(sHeight.IndexOf('%')!=-1){ sHeightCSS = sHeight; } else{ sHeightCSS = sHeight+"px"; }
HttpContext.Current.Response.Write("<textarea name='"+instanceName+"' rows='4' cols='40' style='width: "+sWidthCSS+"; height: "+sHeightCSS+"'>"+HttpContext.Current.Server.HtmlEncode(sValue)+"</textarea>"); } HttpContext.Current.Response.Write("</div>"); }
private bool IsCompatible() { string sAgent = HttpContext.Current.Request.UserAgent; double iVersion; bool iIsCompatible = false; if( sAgent.IndexOf("MSIE") !=-1 && sAgent.IndexOf("mac") ==-1 && sAgent.IndexOf("Opera") == -1) { try{ iVersion = Convert.ToDouble(sAgent.Substring(sAgent.IndexOf("MSIE")+4,4).Trim()); } catch{ iVersion=0; } iIsCompatible = ( iVersion >= 5.5 ); } else { iIsCompatible = false; } return iIsCompatible; }
private string GetConfigFieldString() { string sParams=""; bool bFirst = true; foreach(DictionaryEntry de in oConfig) { if(bFirst == false){ sParams = sParams+"&"; } else{ bFirst = false; } sParams = sParams+EncodeConfig( de.Key.ToString() )+ "=" +EncodeConfig( de.Value.ToString() ); } return sParams; } private string EncodeConfig( string valueToEncode ) { string sEncodeConfig; sEncodeConfig = valueToEncode.Replace("&", "%26" ); sEncodeConfig = sEncodeConfig.Replace("=", "%3D" ); sEncodeConfig = sEncodeConfig.Replace("'", "%22" ); return sEncodeConfig; } } </script>
使用方法:
<% string sBasePath = Request.ServerVariables["PATH_INFO"]; FCKeditor oFCKeditor = new FCKeditor(); oFCKeditor.BasePath = "./FCKeditor/"; oFCKeditor.Width = "100%"; oFCKeditor.Height = "400"; oFCKeditor.ToolbarSet = "Basic"; oFCKeditor.Create("body"); %>
|