软讯网络 > 编程语言 > .NET > C#.NET > sqEditor HTML 编辑器 for .net v1.0 By shawl.qiu
【标 题】:sqEditor HTML 编辑器 for .net v1.0 By shawl.qiu
【关键字】:
sqEditor,HTML,for,.net,v1.0,By,shawl.qiu
【来 源】:http://blog.csdn.net/btbtd/archive/2007/03/03/1519745.aspx
sqEditor HTML 编辑器 for .net v1.0 By shawl.qiu
sqEditor HTML 编辑器 for .net v1.0 By shawl.qiu
目录:
1. 简介
2. 调用示例
3. 编辑示例
4. js 核心代码
内容:
1. 简介
2. 调用示例
- <%@ Page Language="C#" AutoEventWireup="True" validateRequest="false" %>
- <%@ import Namespace="System.Web.UI.WebControls" %>
- <%@ Reference Control="ac/sqEditor.ascx" %>
- <script runat="server">
- public string EdRoot = "/sqEditor_DotNet/";
-
- void Page_Load(Object s, EventArgs e)
- {
- GetEditor("<b>hello</b>, test this.", edPlaceHolder, EdRoot+"ac/sqEditor.ascx",
- new EventHandler(Submit));
- } // end Page_Load
-
- public void GetEditor(string inti, PlaceHolder edPlaceHolder, string edPath, EventHandler eh)
- {
- sqEditor ed = (sqEditor)LoadControl(edPath);
- ed.EdRoot = EdRoot;
- ed.EdIntiText = inti;
- ed.SubmitEventHandler = eh;
-
- edPlaceHolder.Controls.Add(ed);
- }
-
- public void Submit(Object s, EventArgs e)
- {
- TextBox edTextBox =
- (TextBox)((Button)s).Parent.FindControl("edTextBox");
-
- HtmlGenericControl edIntiDiv =
- (HtmlGenericControl)((Button)s).Parent.FindControl("edIntiDiv");
-
- edIntiDiv.InnerHtml = edTextBox.Text;
-
- if(edTextBox == null) return;
-
- debugLabel.Text = edTextBox.Text;
- }
- </script>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>shawl.qiu template</title>
- <style type="text/css">
- /*<![CDATA[*/
- @import "<% Response.Write(EdRoot); %>style/style.css";
- /*]]>*/
- </style>
- </head>
- <body>
- <form runat="server">
- <asp:Label id=debugLabel runat=server
- />
- <div class="sqEditorDiv">
- <asp:PlaceHolder id=edPlaceHolder runat=server
- />
- </div>
- </form>
- <p/><a href="?">--back--</a>
- </body>
- </html>
3. 编辑示例
- <%@ Page Language="C#" AutoEventWireup="True" validateRequest="false" %>
- <%@ import Namespace="System.Data" %>
- <%@ import Namespace="System.Data.OleDb" %>
- <%@ import Namespace="System.IO" %>
- <%@ import Namespace="System.Text" %>
- <%@ import Namespace="System.Web.UI.WebControls" %>
- <%@ Assembly src="cs/Pagination.cs" %>
- <%@ Assembly src="cs/SQ.cs" %>
- <%@ import Namespace="SQ" %>
- <%@ Reference Control="ac/sqEditor.ascx" %>
- <script runat="server">
- public bool Debug = false;
-
- public string EdRoot = "/sqEditor_DotNet/";
- public string ReqIdStr = HttpContext.Current.Request.QueryString["id"]+"";
- public string ReqAidStr = HttpContext.Current.Request.QueryString["aid"]+"";
-
- void Page_Load(Object s, EventArgs e)
- {
- string SqlCnnStr;
- SqlCnnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+
- @MapPath(EdRoot+"/data/shawlqiu.mdb");
-
- string SqlQuery;
- SqlQuery = "select * from shawlqiu_";
-
- acDebugLabel.Text = "";
- acInfoLabel.Text = "";
-
- switch(ReqIdStr)
- {
- case "addnew":
- AddNewBox();
- break;
-
- case "edit":
- SqlQuery+=" where articleid = "+ReqAidStr;
- EditBox(SqlQuery, SqlCnnStr, acInfoLabel);
- break;
-
- case "display":
- SqlQuery+=" where articleid = "+ReqAidStr;
- acDisplayAtDataList.DataSource = Datum.GetDataTable(SqlQuery, SqlCnnStr);
- acDisplayAtDataList.DataBind();
- break;
-
- default:
- SqlQuery+=" order by articleid desc";
- DisplayList(Datum.GetDataTable(SqlQuery, SqlCnnStr, "hello"), acDataList);
- break;
- }
-
- } // end Page_Load
-
- private void EditBox(string qry, string cnn, Label InfoLabel)
- {
- DataTable dt = Datum.GetDataTable(qry, cnn);
-
- string cnt = "";
-
- if(dt.Rows.Count==0)
- {
- Utility.GoBack("查询出错, 3 秒后返回, 还有 ", 3, true, InfoLabel);
- return;
- }
- Literal ltl = new Literal();
- ltl.Text = "<h3 class='fltr algr'>编辑数据 <a href='?id=display&aid="+
- HttpContext.Current.Request.QueryString["aid"]+"'>Go Article</a></h3>title: ";
- edPlaceHolder.Controls.Add(ltl);
-
- TextBox tbx = new TextBox();
- tbx.ID = "acTitle";
- tbx.Columns = 80;
- tbx.Text = dt.Rows[0]["title"]+"";
- edPlaceHolder.Controls.Add(tbx);
-
- GetEditor(
- System.Text.Encoding.Unicode.GetString((byte[])dt.Rows[0]["content"]),
- edPlaceHolder, EdRoot+"ac/sqEditor.ascx",
- new EventHandler(SubmitEdit));
- }
-
- public void SubmitEdit(Object s, EventArgs e)
- {
- bool debug = false;
-
- TextBox edTextBox =
- (TextBox)((Button)s).Parent.FindControl("edTextBox");
-
- TextBox titleTextBox =
- (TextBox)edPlaceHolder.FindControl("acTitle");
-
- HtmlGenericControl edIntiDiv =
- (HtmlGenericControl)((Button)s).Parent.FindControl("edIntiDiv");
-
- edIntiDiv.InnerHtml = edTextBox.Text;
-
- if(edTextBox == null) return;
-
- if((debug|Debug)&acDebugLabel!=null)
- {
- acDebugLabel.Text += "<li/>titleTextBox.Text: "+titleTextBox.Text;
- acDebugLabel.Text += "<li/>titleTextBox.Text==\"\": "+(titleTextBox.Text=="");
-
- acDebugLabel.Text += "<li/>edTextBox.Text: "+edTextBox.Text;
- acDebugLabel.Text += "<li/>edTextBox.Text==\"\": "+(edTextBox.Text=="");
- }
-
- if(titleTextBox.Text=="")
- {
- acInfoLabel.Text += "<li/>标题不能为空! 操作被取消.";
- return;
- }
-
- if(edTextBox.Text=="")
- {
- edTextBox.Text += "<li/>内容不能为空! 操作被取消.";
- return;
- }
-
- string SqlCnnStr;
- SqlCnnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+
- @MapPath(EdRoot+"/data/shawlqiu.mdb");
- OleDbConnection oCnn = new OleDbConnection(SqlCnnStr);
- OleDbCommand oCmd = new OleDbCommand("update shawlqiu_ set title="+
- "@title, content=@content where articleid="+ReqAidStr, oCnn);
-
- OleDbParameter oParamTitle = new OleDbParameter("@title", "OleDbType.Varchar");
- oParamTitle.Value = titleTextBox.Text+"";
- oCmd.Parameters.Add(oParamTitle);
-
- OleDbParameter oParamContent = new OleDbParameter("@content", "OleDbType.Binary");
- oParamContent.Value = edTextBox.Text+"";
- oCmd.Parameters.Add(oParamContent);
-
- oCnn.Open();
- oCmd.ExecuteNonQuery();
- oCnn.Close();
-
- Utility.GoBack("数据已更新, 3 秒后返回, 还有 ", 3, true, acInfoLabel);
- }
- private void AddNewBox()
- {
- Literal ltl = new Literal();
- ltl.Text = "<h3 class='fltr algr'>添加数据</h3>title: ";
- edPlaceHolder.Controls.Add(ltl);
-
- TextBox tbx = new TextBox();
- tbx.ID = "acTitle";
- tbx.Columns = 80;
- edPlaceHolder.Controls.Add(tbx);
-
- GetEditor("add new article", edPlaceHolder, EdRoot+"ac/sqEditor.ascx",
- new EventHandler(SubmitNew));
- }
-
- public void SubmitNew(Object s, EventArgs e)
- {
- bool debug = false;
-
- TextBox edTextBox =
- (TextBox)((Button)s).Parent.FindControl("edTextBox");
-
- TextBox titleTextBox =
- (TextBox)edPlaceHolder.FindControl("acTitle");
-
- HtmlGenericControl edIntiDiv =
- (HtmlGenericControl)((Button)s).Parent.FindControl("edIntiDiv");
-
- edIntiDiv.InnerHtml = edTextBox.Text;
-
- if(edTextBox == null) return;
-
- if((debug|Debug)&acDebugLabel!=null)
- {
- acDebugLabel.Text += "<li/>titleTextBox.Text: "+titleTextBox.Text;
- acDebugLabel.Text += "<li/>titleTextBox.Text==\"\": "+(titleTextBox.Text=="");
-
- acDebugLabel.Text += "<li/>edTextBox.Text: "+edTextBox.Text;
- acDebugLabel.Text += "<li/>edTextBox.Text==\"\": "+(edTextBox.Text=="");
- }
-
- if(titleTextBox.Text=="")
- {
- acInfoLabel.Text += "<li/>标题不能为空! 操作被取消.";
- return;
- }
-
- if(edTextBox.Text=="")
- {
- edTextBox.Text += "<li/>内容不能为空! 操作被取消.";
- return;
- }
- string SqlCnnStr;
- SqlCnnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+
- @MapPath(EdRoot+"/data/shawlqiu.mdb");
- OleDbConnection oCnn = new OleDbConnection(SqlCnnStr);
- OleDbCommand oCmd = new OleDbCommand("insert into shawlqiu_(title, content) "+
- "values(@title, @content)", oCnn);
-
- OleDbParameter oParamTitle = new OleDbParameter("@title", "OleDbType.Varchar");
- oParamTitle.Value = titleTextBox.Text+"";
- oCmd.Parameters.Add(oParamTitle);
-
- OleDbParameter oParamContent = new OleDbParameter("@content", "OleDbType.Binary");
- oParamContent.Value = edTextBox.Text+"";
- oCmd.Parameters.Add(oParamContent);
-
- oCnn.Open();
- oCmd.ExecuteNonQuery();
- oCnn.Close();
-
- Utility.GoBack("数据已添加, 3 秒后返回, 还有 ", 3, "?", acInfoLabel);
- }
-
- private void DisplayList(DataTable dt, DataList acDataList)
- {
- Pagination Paged=new Pagination();
- Paged.Debug=false; // 是否为调试模式
- Paged.DebugLabel=acDebugLabel; // 显示调试信息的 Label
- Paged.NavigatorLabel=acPagedLabel; // 显示主导航条的 Label
- Paged.DetailsLabel=acPagedDetailsLabel;// 显示分页明细的 Label
- Paged.PageSize=20; // 每页大小
- Paged.Go(dt, acDataList); // 执行分页
- Paged=null;
- }
-
- public void GetEditor(string inti, PlaceHolder edPlaceHolder, string edPath, EventHandler eh)
- {
- sqEditor ed = (sqEditor)LoadControl(edPath);
-
- ed.Debug = Debug;
-
- ed.EdRoot = EdRoot;
- ed.EdIntiText = inti;
- ed.SubmitEventHandler = eh;
-
- edPlaceHolder.Controls.Add(ed);
- }
- </script>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>shawl.qiu template</title>
- <style type="text/css">
- /*<![CDATA[*/
- @import "<% Response.Write(EdRoot); %>style/style.css";
- /*]]>*/
- </style>
- </head>
- <body>
- <div class="Main">
- <form runat="server">
- <asp:Label id=acDebugLabel runat=server
- />
- <div class="info corRed">
- <asp:Label id=acInfoLabel runat=server
- />
- </div>
- <div class="navigator">
- <span class="fltr algr">
- <a href="?id=addnew">addnew</a>
- </span>
- <h2><a href="?">sqEditor HTML 编辑器 for .net</a></h2>
- </div>
- <div class="algc">
- <div class="pagedList">
- <asp:Label id=acPagedLabel runat=server
- />
- </div>
- <div class="pagedDetails">
- <asp:Label id=acPagedDetailsLabel runat=server
- />
- </div>
- </div>
- <div class="acMain">
- <asp:DataList id="acDisplayAtDataList"
- BorderColor="black"
- CellPadding="5"
- CellSpacing="5"
- RepeatDirection="Horizontal"
- RepeatLayout="Flow"
- RepeatColumns="10"
- ShowBorder="True"
- runat="server">
-
- <HeaderTemplate>
- <ol class="acOlList">
- </HeaderTemplate>
-
- <HeaderStyle BackColor="#aaaadd">
- </HeaderStyle>
-
- <AlternatingItemStyle>
- </AlternatingItemStyle>
-
- <ItemTemplate>
- <li>
- <span class="algr fltr">
- <a href="?id=edit&aid=<%# DataBinder.Eval(Container.DataItem, "articleid") %>">
- edit
- </a>
- </span>
- <a href="?id=display&aid=<%# DataBinder.Eval(Container.DataItem, "articleid") %>">
- <%# DataBinder.Eval(Container.DataItem, "title") %>
- </a>
- <div class="text">
- <%#
- System.Text.Encoding.Unicode.GetString(
- (byte[])DataBinder.Eval(Container.DataItem, "content")
- )
- %>
- </div>
- </li>
- </ItemTemplate>
- <%--
- <SeparatorTemplate>
- </SeparatorTemplate>
- --%>
- <FooterTemplate>
- </ol>
- </FooterTemplate>
- </asp:DataList>
-
- <asp:DataList id="acDataList"
- BorderColor="black"
- CellPadding="5"
- CellSpacing="5"
- RepeatDirection="Horizontal"
- RepeatLayout="Flow"
- RepeatColumns="10"
- ShowBorder="True"
- runat="server">
-
- <HeaderTemplate>
- <ol class="acOlList">
- </HeaderTemplate>
-
- <HeaderStyle BackColor="#aaaadd">
- </HeaderStyle>
-
- <AlternatingItemStyle>
- </AlternatingItemStyle>
-
- <ItemTemplate>
- <li>
- <span class="algr fltr">
- <a href="?id=edit&aid=<%# DataBinder.Eval(Container.DataItem, "articleid") %>">
- edit
- </a>
- </span>
- <a href="?id=display&aid=<%# DataBinder.Eval(Container.DataItem, "articleid") %>">
- <%# DataBinder.Eval(Container.DataItem, "title") %>
- </a>
- </li>
- </ItemTemplate>
- <%--
- <SeparatorTemplate>
- </SeparatorTemplate>
- --%>
- <FooterTemplate>
- </ol>
- </FooterTemplate>
- </asp:DataList>
- </div>
-
- <div class="sqEditorDiv">
- <asp:PlaceHolder id=edPlaceHolder runat=server
- />
- </div>
- </form>
- </div>
- <p/><a href="?">--back--</a>
- </body>
- </html>
4. js 核心代码
- // sqEditor -- shawl.qiu script : shawl.qiu@gmail.com
-
- /*-----------------------------------------------------------------------------------*\
- * sqEditor HTML 编辑器 for .net v1.0
- \*-----------------------------------------------------------------------------------*/
- //---------------------------------begin class sqEditor()-------------------------------//
- function sqEditor()
- { // shawl.qiu code
- //------------------------------------begin public variable
- //---------------begin about
- this.auSubject='sqEditor HTML 编辑器 for .net';
- this.auVersion='v1.0';
- this.au='shawl.qiu';
- this.auEmail='shawl.qiu@gmail.com';
- this.auBlog='http://blog.csdn.net/btbtd';
- this.auCreateDate='2007-2-29';
- //---------------end about
-
- this.Debug = false;
-
- this.Root = "/sqEditor_DotNet/";
-
- this.Iframe = function(){}
- this.Iframe.Id = "ifm";
- this.Iframe.Window = "";
- this.Iframe.Document = "";
-
- this.SubmitId = "submId";
-
- this.ContentTextBoxId = "ctbId";
- this.IntiTextDivId = "itdId";
-
- this.ReloadString = "";
-
- this.MaxLength = 200000;
- this.MinLength = 13;
-
- this.Word = function(){}
-
- this.Word.ModeTrue = "Go Design Mode";
- this.Word.ModeFalse = "Go Source Mode";
-
- this.Word.Submit = "现在提交数据?";
- this.Word.Reset = "现在重置?";
-
- this.Word.Submitting = "正在提交数据, 请稍候...";
- this.Word.Upsize = "数据过长, 请重新编辑. 最多为: "+this.MaxLength+" 字.";
- this.Word.ShortSize = "数据过短, 请重新编辑. 最小长度为: "+this.MinLength+" 字.";
- //------------------------------------end public variable
-
- //------------------------------------begin private variable
- var Tl = this;
-
- var IntiTextDivObj;
- var ContentTextBoxObj;
-
- var EdMode = true;
- var ReloadMode = false;
- //------------------------------------end private variable
-
- //------------------------------------begin public method
- this.Inti = fInti;
- this.Submit = fSubmit;
- this.SubmitHandler = fSubmitHandler;
- this.Mode = fMode;
- this.Cmd = fCmd;
- this.XmlHttp = fXmlHttp;
- this.Select = fSelect;
- this.Popup= fPopup;
- this.Reload = fReload;
- this.Preview = fPreview;
- this.Source = fSource;
- //------------------------------------end public method
-
- //------------------------------------begin private method
-
- function fSource(){
- Tl.Popup('about:blank');
- oPopup.document.write('<meta http-equiv="Content-Type" content="text/html;'+
- ' charset=utf-8" />');
- var str=Tl.Iframe.Document.body.innerHTML;
- switch(navigator.appName)
- {
- case 'Opera':
- str=str.replace(/<br(\/|)>/gi,'<br/>\r\n');
- str=fStrEncode(str);
- oPopup.document.write('<xmp><div id="sqEditorMain" class="sqEditorMain">\n',
- fStdCase(str),'</div></xmp>'); break;
- case 'Netscape':
- str=str.replace(/<br(\/|)>/gi,'<br/>\r\n');
- str='<div id="sqEditorMain" class="sqEditorMain">\n'+str+'</div>';
- str=fStrEncode(str);
- oPopup.document.write('<pre>'+fStdCase(str)+'</pre>'); break;
- default: str=str.replace(/(<br(\/|)>)/gi,'<br/>\n');
- oPopup.document.write('<xmp><div id="sqEditorMain" class="sqEditorMain">\n',
- fStdCase(str),'</div></xmp>');
- }
- oPopup.document.close();
- } // end function fSource
-
- function fPreview()
- {
- Tl.Popup('about:blank');
- oPopup.document.write(Tl.Iframe.Document.body.innerHTML);
- oPopup.document.close();
- return false;
- }
-
- function fSubmitHandler()
- {
- var btn = document.getElementById(Tl.SubmitId);
- if(btn==null)return false;
-
- btn.click();
- return false;
- }
-
- function fReload()
- {
- if(ReloadMode)Tl.ReloadString='?id='+fRandomLetter(10);
- location.replace(document.URL);
- ReloadMode=true;
- return false;
- }
-
- function fSelect(obj, e)
- {
- if(!e)var e=window.event;
- var ele=e.target||e.srcElement
-
- var iPsti = fGetEleOffsetPsti(ele);
-
- fHidEle(obj); //--
-
- obj.style.width=ele.offsetWidth+'px';
- obj.style.left=iPsti+'px';
- obj.style.top=ele.offsetTop+ele.offsetHeight+'px';
-
- if(obj.childNodes[0].className=='sqEditorCssBorder')return true;
-
- for(var i=0; i<obj.childNodes.length; i++)
- {
- if(obj.childNodes[i].nodeType==1)
- {
- obj.childNodes[i].className='sqEditorCssBorder';
- obj.childNodes[i].style.width=obj.style.width;
- switch(obj.id)
- {
- case 'sqDdFontsize':
- obj.childNodes[i].onclick=function()
- {
- Tl.Cmd('formatBlock', false, this.childNodes[0].nodeName.toLowerCase());
- fHidEle(this.parentNode); //--
- ele.innerHTML=this.childNodes[0].nodeName;
- return false;
- }
- break;
-
- case 'sqDdBgColor':
- obj.childNodes[i].onclick=function()
- {
- ele.style.backgroundColor=this.innerHTML;
- ele.style.color=this.style.color;
- Tl.Cmd('hiliteColor', false, this.innerHTML);
- fHidEle(this.parentNode); //--
- return false;
- }
- break;
-
- case 'sqDdFgColor':
- obj.childNodes[i].onclick=function()
- {
- ele.style.backgroundColor=this.innerHTML;
- ele.style.color=this.style.color;
- Tl.Cmd('ForeColor', false, this.innerHTML);
- fHidEle(this.parentNode); //--
- return false;
- }
- break;
-
- case 'sqDdFormatBlock':
- obj.childNodes[i].onclick=function()
- {
- Tl.Cmd('formatBlock', false, this.innerHTML);
- fHidEle(this.parentNode); //--
- ele.innerHTML=this.innerHTML;
- return false;
- }
- break;
- } // end switch
- } // end if
- } // end for
-
- return false;
-
- function fHidEle(obj){
- obj.style.display=='none'?obj.style.display='block':obj.style.display='none';
- } // end function fHidEle
-
- } // end function fSimulation
-
- function fCmd(sCmd, bOpt, sVal)
- {
- if(!sCmd)return false;
- if(!bOpt)var bOpt=false;
- if(!sVal)var sVal=null;
-
- switch(sCmd){
- case 'pre':
- fPre();
- return false;
- case 'formatBlock':
- if(sVal!='h1'&&sVal!='h2'&&sVal!='h3'&&sVal!='h5'&&sVal!='h5'&&sVal!='h6')
- {
- fPadTag(sVal);
- return false;
- }
- break;
- case 'emptyAll':
- if(sVal==null)sVal='确实要清空内容吗?'
- if(confirm(sVal))
- Tl.Iframe.Document.body.innerHTML=' '
- return false;
- case 'email':
- fEmail();
- return false;
- case 'anchor':
- fAnchor();
- return false;
- case 'emotion':
- fEmotion();
- return false;
- case 'eraserAll':
- fEraserAll();
- return false;
- } // end switch
-
- if(fCkBrs()!=1)
- {
- switch(sCmd)
- {
- case 'createLink':
- fLink();
- return false;
- case 'insertImage':
- fImg();
- return false;
- }
- } // end if
-
- if(fCkBrs()==1){
- switch(sCmd)
- {
- case 'insertOrderedList':
- fOrderListForIe('ol');
- return false;
- case 'insertUnorderedList':
- fOrderListForIe('ul');
- return false;
- case 'hiliteColor':
- sCmd='BackColor';
- break;
- case 'insertHTML':
- fIeInsertHtml(sVal);
- return false;
- case 'InsertImage':
- Tl.Cmd('insertHTML', false,
- '<img src="'+sVal+'" class="sqImg" />');
- return false;
- case 'formatBlock':
- if(sVal=='h1'||sVal=='h2'||sVal=='h3'||sVal=='h4'||sVal=='h5'||sVal=='h6')
- sVal='<'+sVal+'>';
- break;
- } // end switch
- } // end if
-
- Tl.Iframe.Document.execCommand(sCmd, bOpt, sVal);
- return false;
- }
-
- function fMode(){
- var debug = false;
- var dbs = "";
- var EdBtn = document.getElementById('sqBtnMode');
-
- if(EdMode)
- {
- EdBtn.innerHTML = Tl.Word.ModeTrue;
-
- if(navigator.appName == "Netscape")
- {
- Tl.Iframe.Document.body.innerHTML=Tl.Iframe.Document.body.innerHTML.
- replace(/<pre>[\s\S]*?<\/pre>/gi,
- function(match)
- {
- return match.replace(/\r/gi,'<br>');
- });
-
- var TempTextNode=document.createTextNode(Tl.Iframe.Document.body.innerHTML.
- replace(/(<br(?:\/|)>)/gi,'$1\r'));
- Tl.Iframe.Document.body.innerHTML='';
- Tl.Iframe.Document.body.appendChild(TempTextNode); TempTextNode=null;
- Tl.Iframe.Document.body.innerHTML=Tl.Iframe.Document.body.innerHTML.
- replace(/\r/gi,'<br/>\r');
- }
- else
- {
- Tl.Iframe.Document.body.innerText=Tl.Iframe.Document.body.innerHTML.replace(/\n|\r/g,'').
- replace(/<pre>[\s\S]*?<\/pre>/gi,
- function(match){ return match.replace(/<br(\/|)>/gi,'\n'); });
-
- Tl.Iframe.Document.body.innerHTML=Tl.Iframe.Document.body.innerHTML.
- replace(/(\<\;BR(?:\/|)\>\;)/gi,'$1<br/>');
- } // end if 1
-
- EdMode = false;
- }
- else
- {
- EdBtn.innerHTML = Tl.Word.ModeFalse;
-
- if(navigator.appName == "Netscape")
- {
- Tl.Iframe.Document.body.innerHTML=Tl.Iframe.Document.body.innerHTML.replace(/\n|\r/g,'');
- Tl.Iframe.Document.body.innerHTML=Tl.Iframe.Document.body.innerHTML.
- replace(/\<\;pre\>\;[\s\S]+\<\;\/pre>\;/gi,
- function(match){ return match.replace(/<br>/gi,'\r'); });
- var html = Tl.Iframe.Document.body.ownerDocument.createRange();
- html.selectNodeContents(Tl.Iframe.Document.body);
- Tl.Iframe.Document.body.innerHTML=html.toString();
- html=null;
- }
- else
- {
- Tl.Iframe.Document.body.innerHTML=Tl.Iframe.Document.body.innerText.
- replace(/<pre.*?>[\s\S]*?<\/pre>/gi,function(match)
- {
- return match.replace(/\n/g,'<br/>');
- });
- } // end if 1
-
- EdMode = true;
- } // end if
- if(debug||Tl.Debug)
- {
- dbs += "\nEdMode: "+EdMode;
- alert(dbs);
- }
- return false;
- } // end function fMode
-
- function fSubmit()
- {
- var debug = false;
- var dbs = "";
-
- var oEd=document.getElementById(Tl.Iframe.Id);
- var oTemp=document.createElement('div');
- oTemp.id='sqPosting';
- oTemp.style.backgroundColor='yellow';
- oTemp.style.color='black';
- oTemp.innerHTML= Tl.Word.Submitting;
- oEd.parentNode.insertBefore(oTemp, oEd);
- oEd=null;
- oTemp=null;
- if(!EdMode)
- {
- Tl.Mode();
- EdMode=true;
- }
-
- fAtcLink(Tl.Iframe.Document.body, Tl.Iframe.Document);
-
- if(!confirm(Tl.Word.Submit))
- {
- fCancel("sqPosting");
- return false;
- }
-
- if(Tl.Iframe.Window == null) return false;
- if(ContentTextBoxObj == null) return false;
-
- var ifmHtml = Tl.Iframe.Document.body.innerHTML;
-
- if(Tl.Debug||debug)
- {
- dbs += "\ndebug submit:";
- //dbs += "\nifmHtml: "+ifmHtml;
- dbs += "\n ifmHtml.length: "+ifmHtml.length;
- dbs += "\n typeof(ifmHtml.length): "+typeof(ifmHtml.length);
- dbs += "\n ifmHtml.length: "+ifmHtml.length;
- dbs += "\n typeof(Tl.MinLength): "+typeof(Tl.MinLength);
- dbs += "\n Tl.MinLength: "+Tl.MinLength;
-
- alert(dbs);
- }
-
- if(ifmHtml.length>Tl.MaxLength)
- {
- alert(Tl.Word.Upsize);
- fCancel("sqPosting");
- return false;
- }
-
- if(ifmHtml.length<Tl.MinLength)
- {
- alert(Tl.Word.ShortSize);
- fCancel("sqPosting");
- return false;
- }
-
- ContentTextBoxObj.value = ifmHtml;
- return true;
- } // end function fSubmit
-
- function fCancel(sId)
- {
- try
- {
- var oEd=document.getElementById(sId);
- oEd.parentNode.removeChild(oEd);
- oEd=null;
- }
- catch(e){}
- } // end function fCancel
-
- function fAtcLink(obj, dcu)
- {
- if(!EdMode) return false;
- var temp, str='', span;
- for(var i=0, j=obj.childNodes.length; i<j; i++)
- {
- temp=obj.childNodes[i];
- if(temp.nodeType==3)
- {
- if(temp.parentNode.nodeName=='A')return false;
- if(temp.data.indexOf('http')<0&&temp.data.indexOf('ftp')<0&&
- temp.data.indexOf('@')<0)continue;
-
- span=dcu.createElement('span');
- //str=temp.data.replace(/</g,'<').replace(/>/g,'>');
- str=fStrEncode(temp.data);
- str=str.replace(/(ht|f)tp(s|)\:\/\/[\-\w.:]+(\/[^ \n\r\'\"]+|)/gi,function(match)
- {
- return '<a href="'+match+'" class="sqUrl">'+match+'</a>'; } );
-
- str=str.replace(/[\w.]+@[\w\-.]+(\/[^ \n\r\'\"]+|)/gi,function(match)
- {
- return '<a href="mailto:'+match+'" class="sqMail">'+match+'</a>';
- });
-
- span.innerHTML=str;
- obj.replaceChild(span, temp);
- }
- if(temp.nodeType==1)arguments.callee(obj.childNodes[i], dcu);
- } temp=span=null;
- } // end function fAtcLink
-
- function fInti()
- {
- try
- {
- var sbmBtn = document.getElementById(Tl.SubmitId);
- if(sbmBtn==null)return false;
- var clkTemp = sbmBtn.onclick;
-
- sbmBtn.onclick=function()
- {
- try{clkTemp();}catch(e){}
- return Tl.Submit();
- }
-
- Tl.Iframe.Window=document.getElementById(Tl.Iframe.Id).contentWindow;
- Tl.Iframe.Document=Tl.Iframe.Window.document;
-
- ContentTextBoxObj = document.getElementById(Tl.ContentTextBoxId)
-
- Tl.IntiTextDivObj=document.getElementById