                          |
|
| | | |
|
<script type=text/javascript>// 系统初试化 和系统运用 函数组开始////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SEP_PADDING = 5; HANDLE_PADDING = 7; window.onerror = ResumeError; // 改变模式:代码、编辑、文本、预览 var sCurrMode = "EDIT"; var bEditMode = true; var yanchicss= false; ModeEdit.value = "EDIT"; // 连接对象 // 浏览器版本检测 var BrowserInfo = new Object() ; BrowserInfo.MajorVer = navigator.appVersion.match(/MSIE (.)/)[1] ; BrowserInfo.MinorVer = navigator.appVersion.match(/MSIE ..(.)/)[1] ; BrowserInfo.IsIE55OrMore = BrowserInfo.MajorVer >= 6 || ( BrowserInfo.MajorVer >= 5 && BrowserInfo.MinorVer >= 5 ) ; var yToolbars = new Array(); var YInitialized = false; var bLoad=false; var pureText=true; var EditMode=true; var SourceMode=false; var PreviewMode=false; var CurrentMode=0; var sLinkFieldName ="Content"; var edithead="
"; edithead=edithead+""; var content //屏蔽错误 function ResumeError() { return true; } function EditorEdit() { } //程序初始化 function document.onreadystatechange(){ if (YInitialized) return; YInitialized = true; var i, s, curr; for (i=0; i
"); HtmlEdit.document.open(); HtmlEdit.document.write(content); HtmlEdit.document.close(); HtmlEdit.document.designMode="On"; HtmlEdit.document.onkeydown = new Function("return onKeyDown(HtmlEdit.event);"); HtmlEdit.document.onmouseup = new Function("return onMouseUp(HtmlEdit.event,1);"); HtmlEdit.document.oncontextmenu=new Function("return showContextMenu(HtmlEdit.event);"); } function yToolbarsCss(){ if (document.all){ var i, s, curr; for (i=0; i TotalLen) TotalLen = TB.TBWidth; } var PrevTB; var LastStart = 0; var RelTop = 0; var LastWid, CurrWid; var TB = yToolbars[0]; TB.style.posTop = 0; TB.style.posLeft = 0; var Start = TB.TBWidth; for (i = 1 ; i < yToolbars.length ; i++) { PrevTB = TB; TB = yToolbars[i]; CurrWid = TB.TBWidth; if ((Start + CurrWid) > ScrWid) { Start = 0; LastWid = TotalLen - LastStart; }else { LastWid =PrevTB.TBWidth; RelTop -=TB.offsetHeight; } TB.style.posTop = RelTop; TB.style.posLeft = Start; PrevTB.style.width = LastWid; LastStart = Start; Start += CurrWid; } TB.style.width = TotalLen - LastStart; i--; TB = yToolbars[i]; var TBInd = TB.sourceIndex; var A = TB.document.all; var item; for (i in A) { item = A.item(i); if (! item) continue; if (! item.style) continue; if (item.sourceIndex <= TBInd) continue; if (item.style.position == "absolute") continue; item.style.posTop = RelTop; } } function DoTemplate(){ TemplateTBs(); } function BtnMouseOver(){ if (event.srcElement.tagName != "IMG") return false; var image = event.srcElement; var element = image.parentElement; if (image.className == "Ico") element.className = "BtnMouseOverUp"; else if (image.className == "IcoDown") element.className = "BtnMouseOverDown"; event.cancelBubble = true; } function BtnMouseOut(){ if (event.srcElement.tagName != "IMG") { event.cancelBubble = true; return false; } var image = event.srcElement; var element = image.parentElement; yRaisedElement = null; element.className = "Btn"; image.className = "Ico"; event.cancelBubble = true; } function BtnMouseDown(){ if (event.srcElement.tagName != "IMG") { event.cancelBubble = true; event.returnValue=false; return false; } var image = event.srcElement; var element = image.parentElement; element.className = "BtnMouseOverDown"; image.className = "IcoDown"; event.cancelBubble = true; event.returnValue=false; return false; } function BtnMouseUp(){ if (event.srcElement.tagName != "IMG") { event.cancelBubble = true; return false; } var image = event.srcElement; var element = image.parentElement; if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); element.className = "BtnMouseOverUp"; image.className = "Ico"; event.cancelBubble = true; return false; } function BtnMenuMouseOver(){ if (event.srcElement.tagName != "IMG") return false; var image = event.srcElement; var element = image.parentElement; if (image.className == "Ico") element.className = "BtnMenuMouseOverUp"; else if (image.className == "IcoDown") element.className = "BtnMenuMouseOverDown"; event.cancelBubble = true; } function BtnMenuMouseOut(){ if (event.srcElement.tagName != "IMG") { event.cancelBubble = true; return false; } var image = event.srcElement; var element = image.parentElement; yRaisedElement = null; element.className = "BtnMenu"; image.className = "Ico"; event.cancelBubble = true; } function BtnMenuMouseDown(){ if (event.srcElement.tagName != "IMG") { event.cancelBubble = true; event.returnValue=false; return false; } var image = event.srcElement; var element = image.parentElement; element.className = "BtnMenuMouseOverDown"; image.className = "IcoDown"; event.cancelBubble = true; event.returnValue=false; return false; } function BtnMenuMouseUp(){ if (event.srcElement.tagName != "IMG") { event.cancelBubble = true; return false; } var image = event.srcElement; var element = image.parentElement; if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); element.className = "BtnMenuMouseOverUp"; image.className = "Ico"; event.cancelBubble = true; return false; } // 系统初试化 和系统运用 函数组结速 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 表格处理定义函数组开始 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 表格相关全局变量 var selectedTD var selectedTR var selectedTBODY var selectedTable // 显示隐藏表格 var borderShown = "yes" // 插入表格 function TableInsert(){ if (!isTableSelected()){ ShowDialog("Editor/editor_table.asp", 350, 410, true); } } // 修改表格属性 function TableProp(){ if (isTableSelected()||isCursorInTableCell()){ ShowDialog("Editor/editor_table.asp?action=modify", 350, 410, true); } } // 修改单元格属性 function TableCellProp(){ if (isCursorInTableCell()){ ShowDialog("Editor/editor_tablecell.asp", 350, 310, true); } } // 拆分单元格 function TableCellSplit(){ if (isCursorInTableCell()){ ShowDialog("Editor/editor_tablecellsplit.asp", 200, 150, true); } } // 修改表格行属性 function TableRowProp(){ if (isCursorInTableCell()){ ShowDialog("Editor/editor_tablecell.asp?action=row", 350, 310, true); } } // 插入行(在上方) function TableRowInsertAbove() { if (isCursorInTableCell()){ var numCols = 0 allCells = selectedTR.cells for (var i=0;i1时 while (selectedTD.rowSpan > 1 && addRowsNoSpan > 0){ var nextRow = allRows[selectedTR.rowIndex+selectedTD.rowSpan-1]; selectedTD.rowSpan -= 1; var ncLeftColSpan = 0; var position = -1; for (var n=0; nnsLeftColSpan){ position = n; break; } } var newTD=nextRow.insertCell(position); newTD.innerHTML = " "; if (borderShown == "yes") { newTD.runtimeStyle.border = "1px dotted #BFBFBF"; } addRowsNoSpan -= 1; } // rowspan=1时 for (var n=0; n1)&&(allRows[j].cells[k].rowSpan>=selectedTR.rowIndex-allRows[j].rowIndex+1)){ allRows[j].cells[k].rowSpan += 1; } } } // 当前行 for (i = 0; i < allCells.length; i++) { if (i!=selectedTD.cellIndex){ selectedTR.cells[i].rowSpan += 1; }else{ newTD = newTR.insertCell(); newTD.colSpan = selectedTD.colSpan; newTD.innerHTML = " "; if (borderShown == "yes") { newTD.runtimeStyle.border = "1px dotted #BFBFBF"; } } } } } // 删除行 function TableRowDelete() { if (isCursorInTableCell()) { selectedTable.deleteRow(selectedTR.rowIndex) } } // 插入列(在左侧) function TableColInsertLeft() { if (isCursorInTableCell()) { moveFromEnd = (selectedTR.cells.length-1) - (selectedTD.cellIndex) allRows = selectedTable.rows for (i=0;i 1) { allCellsInRow[position].colSpan = allCellsInRow[position].colSpan - 1 } else { allRows[i].deleteCell(position) } } } } // 拆分列 function TableColSplit(nCols){ if (!isCursorInTableCell()) return; if (nCols<2) return; var addCols = nCols - 1; var addColsNoSpan = addCols; var newCell; var nsLeftColSpan = 0; var nsLeftRowSpanMoreOne = 0; for (var i=0; i 1){ nsLeftRowSpanMoreOne += 1; } } var allRows = selectedTable.rows // colSpan>1时 while (selectedTD.colSpan > 1 && addColsNoSpan > 0) { newCell = selectedTR.insertCell(selectedTD.cellIndex+1); newCell.innerHTML = " " if (borderShown == "yes") { newCell.runtimeStyle.border = "1px dotted #BFBFBF" } selectedTD.colSpan -= 1; addColsNoSpan -= 1; } // colSpan=1时 for (i=0;insLeftColSpan){ position = n; break; } } if (selectedTR.rowIndex!=i){ if (position!=-1){ allRows[i].cells[position+nsLeftRowSpanMoreOne].colSpan += addColsNoSpan; } }else{ for (var n=0; n | "; var sMenu1=""; // 菜单 var oPopupMenu = null; if (BrowserInfo.IsIE55OrMore){ oPopupMenu = window.createPopup(); } // 取菜单行 function getMenuRow(s_Disabled, s_Event, s_Image, s_Html) { var s_MenuRow = ""; s_MenuRow = "| " if (s_Image !=""){ s_MenuRow += " "; }else{ s_MenuRow += " "; } s_MenuRow += s_Html+" |
|
"; return s_MenuRow; } // 取标准的format菜单行 function getFormatMenuRow(menu, html, image){ var s_Disabled = ""; if (!HtmlEdit.document.queryCommandEnabled(menu)){ s_Disabled = "disabled"; } var s_Event = "format(""+menu+"")"; var s_Image = menu+".gif"; if (image){ s_Image = image; } return getMenuRow(s_Disabled, s_Event, s_Image, html) } // 暂时解决一下 不能通用右键的问题 function getFormatMenuRow2(menu, html, image){ var s_Disabled = ""; if (!HtmlEdit.document.queryCommandEnabled(menu)){ s_Disabled = "disabled"; } var s_Event = "format2(""+menu+"")"; var s_Image = menu+".gif"; if (image){ s_Image = image; } return getMenuRow(s_Disabled, s_Event, s_Image, html) } //表格菜单 function tableMenu(){ if (!bEditMode) return false; var sMenu = "" var width = 150; var height = 0; var lefter = event.clientX; var leftoff = event.offsetX var topper = event.clientY; var topoff = event.offsetY; var oPopDocument = oPopupMenu.document; var oPopBody = oPopupMenu.document.body; sMenu += getTableMenuRow("TableInsert"); sMenu += getTableMenuRow("TableProp"); sMenu += sMenuHr; sMenu += getTableMenuRow("TableCell"); height = 306; } // 取表格菜单行 function getTableMenuRow(what){ var s_Menu = ""; var s_Disabled = "disabled"; switch(what){ case "TableInsert": if (!isTableSelected()) s_Disabled=""; s_Menu += getMenuRow(s_Disabled, "TableInsert()", "table_cr.gif", "插入表格...") break; case "TableProp": if (isTableSelected()||isCursorInTableCell()) s_Disabled=""; s_Menu += getMenuRow(s_Disabled, "TableProp()", "table_sx.gif", "表格属性...") break; case "TableCell": if (isCursorInTableCell()) s_Disabled=""; s_Menu += getMenuRow(s_Disabled, "TableCellProp()", "table_sx2.gif", "单元格属性...") s_Menu += getMenuRow(s_Disabled, "TableCellSplit()", "table_cf.gif", "拆分单元格...") s_Menu += sMenuHr; s_Menu += getMenuRow(s_Disabled, "TableRowProp()", "table_sxh.gif", "表格行属性...") s_Menu += getMenuRow(s_Disabled, "TableRowInsertAbove()", "table_tr.gif", "插入行(在上方)"); s_Menu += getMenuRow(s_Disabled, "TableRowInsertBelow()", "table_trx.gif", "插入行(在下方)"); s_Menu += getMenuRow(s_Disabled, "TableRowMerge()", "table_hbx.gif", "合并行(向下方)"); s_Menu += getMenuRow(s_Disabled, "TableRowSplit(2)", "table_cfh.gif", "拆分行"); s_Menu += getMenuRow(s_Disabled, "TableRowDelete()", "table_trdel.gif", "删除行"); s_Menu += sMenuHr; s_Menu += getMenuRow(s_Disabled, "TableColInsertLeft()", "table_td.gif", "插入列(在左侧)"); s_Menu += getMenuRow(s_Disabled, "TableColInsertRight()", "table_tdr.gif", "插入列(在右侧)"); s_Menu += getMenuRow(s_Disabled, "TableColMerge()", "table_hby.gif", "合并列(向右侧)"); s_Menu += getMenuRow(s_Disabled, "TableColSplit(2)", "table_cf.gif", "拆分列"); s_Menu += getMenuRow(s_Disabled, "TableColDelete()", "table_tddel.gif", "删除列"); break; } return s_Menu; } // 右键是否在编辑状态 function isyou(){ var range = HtmlEdit.document.selection.createRange(); var RangeType = HtmlEdit.document.selection.type; if (RangeType == "Text"){ return true; } } // 右键调用类型 function youjiantype(){ if (youjian=true){ return true; } } // 右键菜单 function showContextMenu(event){ if (!bEditMode) return false; var width = 150; var height = 0; var lefter = event.clientX; var topper = event.clientY; var oPopDocument = oPopupMenu.document; var oPopBody = oPopupMenu.document.body; var sMenu=""; sMenu += getFormatMenuRow2("cut", "剪切"); sMenu += getFormatMenuRow2("copy", "复制"); sMenu += getFormatMenuRow2("paste", "常规粘贴"); sMenu += getFormatMenuRow2("delete", "删除"); height += 102; if (HtmlEdit.document.selection.type == "Control") { sMenu += getMenuRow("", "insert("Attribute")", "label3.gif", "代码属性..."); height+= 19; } if (sCurrMode=="EDIT"){ if (isyou()){ sMenu += getMenuRow("", "insert("fgcolor")", "fgcolor.gif", "文字颜色"); sMenu += getMenuRow("", "insert("fgbgcolor")", "fgbgcolor.gif", "文字背景色"); sMenu += getMenuRow("", "format("bold")", "bold.gif", "文字加粗"); sMenu += getMenuRow("", "format("italic")", "italic.gif", "文字斜体"); sMenu += getMenuRow("", "format("underline")", "underline.gif", "文字下划线"); sMenu += getMenuRow("", "format("StrikeThrough")", "strikethrough.gif", "文字删除线"); height += 119; } if (isCursorInTableCell()){ sMenu += getTableMenuRow("TableProp"); sMenu += getTableMenuRow("TableCell"); sMenu += sMenuHr; height += 286; } if (isControlSelected("TABLE")){ sMenu += getTableMenuRow("TableProp"); sMenu += sMenuHr; height += 22; } if (isControlSelected("IMG")){ sMenu += getMenuRow("", "insert("pic")", "img.gif", "图片属性..."); sMenu += sMenuHr; sMenu += getMenuRow("", "imgalign("left")", "imgleft.gif", "图片左环绕..."); sMenu += getMenuRow("", "imgalign("center")", "imgcenter.gif", "图片单行居中..."); sMenu += getMenuRow("", "imgalign("right")", "imgright.gif", "图片右环绕..."); sMenu += sMenuHr; sMenu += getMenuRow("", "zIndex("forward")", "forward.gif", "上移一层"); sMenu += getMenuRow("", "zIndex("backward")", "backward.gif", "下移一层"); sMenu += sMenuHr; height+= 127; } } sMenu += getFormatMenuRow2("selectall", "全选"); sMenu += getMenuRow("", "findstr()", "find.gif", "查找替换..."); height += 20; sMenu = sMenu1 + sMenu + sMenu2; oPopDocument.open(); oPopDocument.write(""+sMenu); oPopDocument.close(); height+=2; if(lefter+width > document.body.clientWidth) lefter=lefter-width; oPopupMenu.show(lefter, topper, width, height, HtmlEdit.document.body); return false; } // 右键下拉工具栏菜单 function showToolMenu(menu){ if (!bEditMode) return false; var sMenu = "" var width = 150; var height = 0; var lefter = event.clientX; var leftoff = event.offsetX var topper = event.clientY; var topoff = event.offsetY; var oPopDocument = oPopupMenu.document; var oPopBody = oPopupMenu.document.body; switch(menu){ case "font": // 字体菜单 sMenu += getFormatMenuRow("superscript", "上标", "sup.gif"); sMenu += getFormatMenuRow("subscript", "下标", "sub.gif"); sMenu += sMenuHr; sMenu += getMenuRow("", "insert("big")", "tobig.gif", "字体增大"); sMenu += getMenuRow("", "insert("small")", "tosmall.gif", "字体减小"); sMenu += sMenuHr; sMenu += getFormatMenuRow("insertorderedlist", "编号", "num.gif"); sMenu += getFormatMenuRow("insertunorderedlist", "项目符号", "list.gif"); sMenu += getFormatMenuRow("indent", "增加缩进量", "indent.gif"); sMenu += getFormatMenuRow("outdent", "减少缩进量", "outdent.gif"); sMenu += sMenuHr; sMenu += getFormatMenuRow("insertparagraph", "插入段落", "paragraph.gif"); sMenu += getMenuRow("", "insert("br")", "chars.gif", "插入换行符"); height = 206; break; case "paragraph":// 段落菜单 sMenu += getFormatMenuRow("JustifyLeft", "左对齐", "JustifyLeft.gif"); sMenu += getFormatMenuRow("JustifyCenter", "居中对齐", "JustifyCenter.gif"); sMenu += getFormatMenuRow("JustifyRight", "右对齐", "JustifyRight.gif"); sMenu += getFormatMenuRow("JustifyFull", "两端对齐", "JustifyFull.gif"); sMenu += sMenuHr; sMenu += getFormatMenuRow("insertorderedlist", "编号", "insertorderedlist.gif"); sMenu += getFormatMenuRow("insertunorderedlist", "项目符号", "insertunorderedlist.gif"); sMenu += getFormatMenuRow("indent", "增加缩进量", "indent.gif"); sMenu += getFormatMenuRow("outdent", "减少缩进量", "outdent.gif"); sMenu += sMenuHr; sMenu += getFormatMenuRow("insertparagraph", "插入段落", "insertparagraph.gif"); sMenu += getMenuRow("", "insert("br")", "br.gif", "插入换行符"); height = 204; break; case "gongshi":// 公式编辑器 sMenu += getMenuRow("","insert("InsertEQ")", "eq1.gif", "插入公式"); sMenu += getMenuRow("","insert("InstallEQ")", "eq2.gif", "安装公式编辑器插件"); height = 42; break; case "edit": // 编辑菜单 var s_Disabled = ""; if (history.data.length <= 1 || history.position <= 0) s_Disabled = "disabled"; sMenu += getMenuRow(s_Disabled, "goHistory(-1)", "undo.gif", "撤消") if (history.position >= history.data.length-1 || history.data.length == 0) s_Disabled = "disabled"; sMenu += getMenuRow(s_Disabled, "goHistory(1)", "redo.gif", "恢复") sMenu += sMenuHr; sMenu += getFormatMenuRow("Cut", "剪切", "cut.gif"); sMenu += getFormatMenuRow("Copy", "复制", "copy.gif"); sMenu += getFormatMenuRow("Paste", "常规粘贴", "paste.gif"); sMenu += getMenuRow("", "PasteText()", "pastetext.gif", "纯文本粘贴"); sMenu += getMenuRow("", "PasteWord()", "pasteword.gif", "从Word中粘贴"); sMenu += sMenuHr; sMenu += getFormatMenuRow("delete", "删除", "del.gif"); sMenu += getFormatMenuRow("RemoveFormat", "删除文字格式", "removeformat.gif"); sMenu += sMenuHr; sMenu += getFormatMenuRow("SelectAll", "全部选中", "selectall.gif"); sMenu += getFormatMenuRow("Unselect", "取消选择", "unselect.gif"); sMenu += sMenuHr; sMenu += getMenuRow("", "findReplace()", "findreplace.gif", "查找替换"); height = 248; break; case "object": // 对象效果菜单 sMenu += getMenuRow("", "zIndex("forward")", "forward.gif", "上移一层"); sMenu += getMenuRow("", "zIndex("backward")", "backward.gif", "下移一层"); sMenu += sMenuHr; sMenu += getMenuRow("", "insert("quote")", "quote.gif", "引用样式"); sMenu += getMenuRow("", "insert("code")", "code.gif", "代码样式"); height = 86; break; case "table": // 表格菜单 sMenu += getTableMenuRow("TableInsert"); sMenu += getTableMenuRow("TableProp"); sMenu += sMenuHr; sMenu += getTableMenuRow("TableCell"); height = 306; break; case "form": // 表单菜单 sMenu += getMenuRow("", "Insermenu("time")", "FormDropdown.gif", "转向菜单"); sMenu += getFormatMenuRow("InsertInputText", "插入输入框", "FormText.gif"); sMenu += getFormatMenuRow("InsertTextArea", "插入输入区", "FormTextArea.gif"); sMenu += getFormatMenuRow("InsertInputRadio", "插入单选钮", "FormRadio.gif"); sMenu += getFormatMenuRow("InsertInputCheckbox", "插入复选钮", "FormCheckBox.gif"); sMenu += getFormatMenuRow("InsertSelectDropdown", "插入下拉框", "FormDropdown.gif"); sMenu += getFormatMenuRow("InsertButton", "插入按钮", "FormButton.gif"); height = 150; break; case "zoom": // 缩放菜单 for (var i=0; i"+sMenu); oPopDocument.close(); height+=2; if(lefter+width > document.body.clientWidth) lefter=lefter-width; oPopupMenu.show(lefter - leftoff - 2, topper - topoff + 22, width, height, document.body); return false; } // 右键菜单定义函数组结速 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 编辑器设置 函数组开始 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 改变编辑区高度 function sizeChange(size){ if (!BrowserInfo.IsIE55OrMore){ alert("此功能需要IE5.5版本以上的支持!"); return false; } for (var i=0; i=100){ obj.height=height+size; } break; } } } // 快捷键 function onKeyDown(event){ var key = String.fromCharCode(event.keyCode).toUpperCase(); // F2:显示或隐藏指导方针 if (event.keyCode==113){ showBorders(); return false; } if (event.ctrlKey){ // Ctrl+Enter:提交 if (event.keyCode==10){ doSubmit(); return false; } // Ctrl++:增加编辑区 if (key=="+"){ sizeChange(300); return false; } // Ctrl+-:减小编辑区 if (key=="-"){ sizeChange(-300); return false; } // Ctrl+1:设计模式 if (key=="1"){ setMode("EDIT"); return false; } // Ctrl+2:代码模式 if (key=="2"){ setMode("CODE"); return false; } // Ctrl+3:纯文本 if (key=="3"){ setMode("TEXT"); return false; } // Ctrl+4:预览 if (key=="4"){ setMode("VIEW"); return false; } } switch(sCurrMode){ case "VIEW": return true; break; case "EDIT": if (event.ctrlKey){ // Ctrl+D:从Word粘贴 if (key == "D"){ insert("word"); return false; } // Ctrl+R:查找替换 if (key == "R"){ findstr(); return false; } // Ctrl+Z:Undo if (key == "Z"){ format("undo"); return false; } // Ctrl+Y:Redo if (key == "Y"){ format("redo"); return false; } } if(!event.ctrlKey && event.keyCode != 90 && event.keyCode != 89) { if (event.keyCode == 32 || event.keyCode == 13){ saveHistory() } } return true; break; default: if (event.keyCode==13){ var sel = HtmlEdit.document.selection.createRange(); sel.pasteHTML("
"); event.cancelBubble = true; event.returnValue = false; sel.select(); sel.moveEnd("character", 1); sel.moveStart("character", 1); sel.collapse(false); return false; } // 屏蔽事件 if (event.ctrlKey){ // Ctrl+B,I,U if ((key == "B")||(key == "I")||(key == "U")){ return false; } } } } //触发焦点事件 function onMouseUp(event,TemplateType){ } //Html 标签导航 function UpdateToolbar(){ } function GetAllAncestors(){ var p = GetParentElement(); var a = []; while (p && (p.nodeType==1)&&(p.tagName.toLowerCase()!="body")) { a.push(p); p=p.parentNode; } a.push(HtmlEdit.document.body); return a; } function GetParentElement(){ var sel=GetSelection(); var range=CreateRange(sel); switch (sel.type) { case "Text": case "None": return range.parentElement(); case "Control": return range.item(0); default: return HtmlEdit.document.body; } } function GetSelection(){ return HtmlEdit.document.selection; } function CreateRange(sel){ return sel.createRange(); } function SelectNodeContents(Obj,pos){ var node=Obj.el; EditControl=node; for (var i=0;i= 0; i--) { curr = fonts[i]; if (curr.style.backgroundColor == "#ffffff") curr.outerHTML = curr.innerHTML; } } // 是否选中指定类型的控件 function isControlSelected(tag){ if (HtmlEdit.document.selection.type == "Control") { var oControlRange = HtmlEdit.document.selection.createRange(); if (oControlRange(0).tagName.toUpperCase() == tag) { return true; } } return false; } // 判断是否在编辑状态 function validateMode(){ if (EditMode) return true; alert("请先点编辑器下方的“编辑”按钮,进入“编辑”状态,然后再使用系统编辑功能!"); HtmlEdit.focus(); return false; } // 字体处理 function format(what,opt){ if (!validateMode()) return; if (opt=="removeFormat"){ what=opt; opt=null; } if (opt==null) HtmlEdit.document.execCommand(what); else HtmlEdit.document.execCommand(what,"",opt); pureText = false; HtmlEdit.focus(); } //暂时解决一下文本源码,复制粘贴的问题。 function format2(what,opt){ if (opt=="removeFormat"){ what=opt; opt=null; } if (opt==null) HtmlEdit.document.execCommand(what); else HtmlEdit.document.execCommand(what,"",opt); pureText = false; HtmlEdit.focus(); } // 修正Undo/Redo var history = new Object; history.data = []; history.position = 0; history.bookmark = []; // 保存历史 function saveHistory() { if (bEditMode){ if (history.data[history.position] != HtmlEdit.document.body.innerHTML){ var nBeginLen = history.data.length; var nPopLen = history.data.length - history.position; for (var i=1; i 0){ HtmlEdit.document.body.innerHTML = history.data[--history.position]; setHistoryCursor(); } // redo } else { if (history.position < history.data.length -1){ HtmlEdit.document.body.innerHTML = history.data[++history.position]; setHistoryCursor(); } } } // 设置当前书签 function setHistoryCursor() { if (history.bookmark[history.position]){ r = HtmlEdit.document.body.createTextRange() if (history.bookmark[history.position] != "[object]"){ if (r.moveToBookmark(history.bookmark[history.position])){ r.collapse(false); r.select(); } } } } // End Undo / Redo Fix function setMode(NewMode){ if (!BrowserInfo.IsIE55OrMore){ if ((NewMode=="CODE") || (NewMode=="EDIT") || (NewMode=="VIEW")){ alert("HTML编辑模式需要IE5.5版本以上的支持!"); return false; } } if (NewMode=="TEXT"){ if (sCurrMode==ModeEdit.value){ if (!confirm("警告!切换到纯文本模式会丢失您所有的HTML格式,您确认切换吗?")){ return false; } } } var sBody = ""; switch(sCurrMode){ case "CODE": if (NewMode=="TEXT"){ HtmlEdit_Temp_HTML.innerHTML = HtmlEdit.document.body.innerText; sBody = HtmlEdit_Temp_HTML.innerText; }else{ sBody