📄 editor.jsp
字号:
<% /* @copyright jsp */ %><%@ page contentType="text/html; charset=utf-8" %><%@ page buffer="none" autoFlush="true" %><%@ page import="java.util.*" %><%@ page import="com.ibm.pvc.wps.docEditor.*" %><%@ page import="com.ibm.pvc.wps.docEditor.tags.*" %><jsp:useBean id="com_ibm_pvc_wps_docEditor" class="java.lang.String" scope="request"/><% String userAgent = request.getHeader("user-agent");Editor aEditor = (Editor)request.getAttribute("com_ibm_pvc_wps_docEditor_" + com_ibm_pvc_wps_docEditor);String editorName = aEditor.getName();String locale = (String)aEditor.getAttribute("locale");String images = (String)aEditor.getAttribute("images");String directory = (String)aEditor.getAttribute("directory");String mode = (String)aEditor.getAttribute("mode");ResourceBundle resourceBundle = (ResourceBundle)aEditor.getAttribute("resourceBundle");boolean editMode = mode.equalsIgnoreCase("edit"); String isBidi = (String)aEditor.getAttribute("isBidi"); String enableWindowControl = (String)aEditor.getAttribute("enableWindowControl"); boolean isMozilla = userAgent.indexOf("Gecko") == -1 ? false : true; boolean withSource = aEditor.getAttribute("addSource") != null; String evtHandler = (String)aEditor.getAttribute("evtHandler"); if (evtHandler == null) evtHandler = ""; String apostrophe = "\\u2019"; %><jsp:include page="toolbar_panel.jsp" flush="true" /><% String controlChars[] = {"\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\u0008", "\\u0009", "\\u000A", "\\u000B", "\\u000C", "\\u000D", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"}; %><script language="javascript">var FirstComments="";var theScriptToolbars = new Array();var theScriptToolbars1 = new Array();var apostrophe = "<%= apostrophe %>";var addBrTag = false;<%-- //TODO: Convert this to a single method and use the DOM instead of scriplets --%>function IBM_RTE_<%= editorName %>doToggleView() { <% Vector theToolbars = aEditor.getOrderedToolbars(); for (int t = 0; t < theToolbars.size(); t++) { Toolbar aToolbar = (Toolbar)theToolbars.elementAt(t); String toolbarName = aToolbar.getName(); %> theScriptToolbars[<%=t%>]="<%=toolbarName%>"; <% Vector controls = aToolbar.getOrderedControls(); %> var scriptcontrolName=new Array(); <% for (int c = 0; c < controls.size(); c++) { Control aControl = (Control)controls.elementAt(c); String controlName = aControl.getName(); if (!controlName.equals("ButtonSourceCode")) { %> scriptcontrolName[<%=c%>]="<%=controlName%>"; <% }}%> theScriptToolbars1["<%=toolbarName%>"]=scriptcontrolName; <%} %> if (document.getElementById("<%= editorName %>ToolbarFormatButtonSourceCodeImg").title == "<%= resourceBundle.getString("SourceMode") %>") {// to src mode IBM_RTE_setMode("<%= editorName%>", 1); addBrTag = IBM_RTE_removeDanglingP_BR("<%= editorName %>"); if (IBM_RTE_isMozilla()) {// tag fix - begin var a = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("A"); var xxx=0; while(a[xxx] != null){ if(a[xxx].getAttribute("odc") != "" && a[xxx].getAttribute("odc") != null){ a[xxx].setAttribute("href", a[xxx].getAttribute("odc")); a[xxx].removeAttribute("odc", 0); } xxx++; } /* var b = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("IMG"); var xxx=0; while(b[xxx] != null){ if(b[xxx].getAttribute("odc") != "" && b[xxx].getAttribute("odc") != null){ b[xxx].setAttribute("src", b[xxx].getAttribute("odc")); b[xxx].removeAttribute("odc", 0); } xxx++; } */ var html = document.createTextNode(IBM_RTE_getDocument("<%= editorName %>").body.innerHTML); var iText = html.data; iText = iText.replace(/&#[0-2]?[0-9];/g,""); iText = iText.replace(/[01];/g,""); iText = stripControlCharacters(iText); html.data = iText; IBM_RTE_getDocument("<%= editorName %>").body.innerHTML = ""; IBM_RTE_getDocument("<%= editorName %>").body.appendChild(html); } else { var a = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("A"); var xxx=0; while(a[xxx] != null){ if(a[xxx].odc != "" && a[xxx].odc != null) a[xxx].href = a[xxx].odc; a[xxx].removeAttribute("odc", 0); xxx++; }/* var b = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("IMG"); var xxx=0; while(b[xxx] != null){ if(b[xxx].odc != "" && b[xxx].odc != null) b[xxx].src = b[xxx].odc; b[xxx].removeAttribute("odc", 0); xxx++; }*/ iHTML = IBM_RTE_getDocument("<%= editorName %>").body.innerHTML; iHTML = iHTML.replace(/&#[0-2]?[0-9];/g,""); iHTML = iHTML.replace(/[01];/g,""); iHTML = stripControlCharacters(iHTML); //iHTML = addXMPTags(iHTML, true); var test2=getFirstComments(); if (test2.substring(0,4)=="<!--" && test2!="" ){ IBM_RTE_getDocument("<%= editorName %>").body.innerText =test2+iHTML; }else{ IBM_RTE_getDocument("<%= editorName %>").body.innerText =iHTML; } } document.getElementById("<%= editorName %>ToolbarFormatButtonSourceCodeImg").title = "<%= resourceBundle.getString("DesignMode") %>"; document.getElementById("<%= editorName %>ToolbarFormatButtonSourceCodeImg").alt = "<%= resourceBundle.getString("DesignMode") %>"; for (var i=0;i<theScriptToolbars.length;i++){ var temparray=theScriptToolbars1[theScriptToolbars[i]]; for (var j=0;j<temparray.length;j++){ var tmparr= "<%= editorName %>"+theScriptToolbars[i]+temparray[j]; document.getElementById(tmparr).style.display = 'none'; } } IBM_RTE_getWindow("<%= editorName %>").focus(); }else { // to view mode IBM_RTE_setMode("<%= editorName%>", 0); if (IBM_RTE_isMozilla()) { var html = IBM_RTE_getDocument("<%= editorName %>").body.ownerDocument.createRange(); html.selectNodeContents(IBM_RTE_getDocument("<%= editorName %>").body); // anchor tag fix - start var Text1 = html.toString(); if(addBrTag){ Text1 = "<BR>" + Text1; } var str3 = "" + "<a .*?[^\/]>"; var re3 = new RegExp(str3.toString(),"gi"); var matches = Text1.match(re3); var xx = 0; if(matches != null) while(true){ if(matches[xx] == null) break; var Smatch = matches[xx]; var validAnchor = IBM_RTE_validateAnchorTags("<%= editorName %>", matches[xx].toString()); matches[xx] = matches[xx].replace(matches[xx].toString(),validAnchor); var str69 = "" + "href=\"'"; var re69 = new RegExp(str69.toString(),"i"); var str96 = "" + "href='\""; var re96 = new RegExp(str96.toString(),"i"); if(re69.test(Smatch) == false && re96.test(Smatch) == false && IBM_RTE_isCustomTag(Smatch) == false) { var cmpts = matches[xx].match(/href=(["'])([^\1]*?)\1/i); if(cmpts != null) { var quot = cmpts[1]; var href = cmpts[2]; temp = "href=\"" + href.replace(/\"/gi,"'") + "\" odc=\"" + href.replace(/\"/gi,"'") + "\" "; matches[xx] = matches[xx].replace(/href=(["'])([^\1]*?)\1/i, temp); Text1 = Text1.replace(Smatch.toString(), matches[xx].toString()); } } xx++; } // anchor tag fix - end // img tag fix - start var matches = Text1.match(/<img.*?src=(['"])[^\1]*?\1.*?[\/]?>/gi); var xx = 0; if(matches != null) while(true){ if(matches[xx] == null) break; var Smatch = matches[xx]; var str69 = "" + "src=\"'"; var re69 = new RegExp(str69,"i"); var str96 = "" + "src='\""; var re96 = new RegExp(str96,"i"); if(re69.test(Smatch) == false && re96.test(Smatch) == false && IBM_RTE_isCustomTag(Smatch)== false) { var cmpts = matches[xx].match(/src=(["'])([^\1]*?)\1/i); if(cmpts != null) { var quot = cmpts[1]; var src = cmpts[2]; temp = "src=\"" + src.replace(/\"/gi,"'") + "\" odc=\"" + src.replace(/\"/gi,"'") + "\" "; matches[xx] = matches[xx].replace(/src=(["'])([^\1]*?)\1/i, temp); Text1 = Text1.replace(Smatch.toString(), matches[xx].toString()); } } xx++; } Text1 = Text1.replace(/&#[0-2]?[0-9];/g,""); Text1 = Text1.replace(/[01];/g,""); Text1 = stripControlCharacters(Text1); IBM_RTE_getDocument("<%= editorName %>").body.innerHTML=Text1; IBM_RTE_MozillaRestoreComments("<%= editorName %>"); }else { // IE var Text1 = IBM_RTE_getDocument("<%= editorName %>").body.innerText; var str3 = "" + "<a .*?[^/]>"; var re3 = new RegExp(str3.toString(),"gi"); var matches = Text1.match(re3); var xx = 0; if(matches != null) while(true){ if(matches[xx] == null) break; var Smatch = matches[xx]; var validAnchor = IBM_RTE_validateAnchorTags("<%= editorName %>", matches[xx].toString()); matches[xx] = matches[xx].replace(matches[xx].toString(),validAnchor); var str69 = "" + "href=\"'"; var re69 = new RegExp(str69.toString(),"i"); var str96 = "" + "href='\""; var re96 = new RegExp(str96.toString(),"i"); if(re69.test(Smatch) == false && re96.test(Smatch) == false && IBM_RTE_isCustomTag(Smatch) == false){ var cmpts = matches[xx].match(/href=(["'])([^\1]*?)\1/i); if(cmpts != null){ var quot = cmpts[1]; var href = cmpts[2]; temp = "href=\"" + href.replace(/\"/gi,"'") + "\" odc=\"" + href.replace(/\"/gi,"'") + "\" "; matches[xx] = matches[xx].replace(/href=(["'])([^\1]*?)\1/i, temp); Text1 = Text1.replace(Smatch.toString(), matches[xx].toString()); } } xx++; } IBM_RTE_getDocument("<%= editorName %>").body.innerText = Text1; Text1 = IBM_RTE_getDocument("<%= editorName %>").body.innerText; var matches = Text1.match(/<img.*?src=(['"])[^\1]*?\1.*?[\/]?>/gi); var xx = 0; if(matches != null) while(true){ if(matches[xx] == null) break; var Smatch = matches[xx]; var str69 = "" + "src=\"'"; var re69 = new RegExp(str69,"i"); var str96 = "" + "src='\""; var re96 = new RegExp(str96,"i"); if(re69.test(Smatch) == false && re96.test(Smatch) == false && IBM_RTE_isCustomTag(Smatch)== false){ var cmpts = matches[xx].match(/src=(["'])([^\1]*?)\1/i); if(cmpts != null){ var quot = cmpts[1]; var src = cmpts[2]; temp = "src=\"" + src.replace(/\"/gi,"'") + "\" odc=\"" + src.replace(/\"/gi, "'") + "\" "; matches[xx] = matches[xx].replace(/src=(["'])([^\1]*?)\1/i, temp); Text1 = Text1.replace(Smatch.toString(), matches[xx].toString()); } } xx++; } Text1 = Text1.replace(/&#[0-2]?[0-9];/g,""); Text1 = Text1.replace(/[01];/g,""); Text1 = stripControlCharacters(Text1); IBM_RTE_getDocument("<%= editorName %>").body.innerText = Text1; iText = IBM_RTE_getDocument("<%= editorName %>").body.innerText; //iText = addXMPTags(iText, false); var test3=retainFirstComments(iText); if (test3.substring(0,4)=="<!--" && test3!=""){ IBM_RTE_getDocument("<%= editorName %>").body.innerHTML =test3+iText; } else{ IBM_RTE_getDocument("<%= editorName %>").body.innerHTML=iText; } } if(IBM_RTE_isMozilla()){ var a = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("A"); var xxx=0; while(a[xxx] != null){ if(a[xxx].getAttribute("odc") != "" && a[xxx].getAttribute("odc") != null) a[xxx].setAttribute("href", a[xxx].getAttribute("odc")); xxx++; } var b = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("IMG"); var xxx=0; while(b[xxx] != null){ if(b[xxx].getAttribute("odc") != "" && b[xxx].getAttribute("odc") != null) b[xxx].setAttribute("src", b[xxx].getAttribute("odc")); xxx++; } } else{ var a = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("A"); var xxx=0; while(a[xxx] != null){ if(a[xxx].odc != "" && a[xxx].odc != null) a[xxx].href= a[xxx].odc; xxx++; } var b = IBM_RTE_getDocument("<%= editorName %>").body.getElementsByTagName("IMG"); var xxx=0; while(b[xxx] != null){ if(b[xxx].odc != "" && b[xxx].odc != null) b[xxx].src= b[xxx].odc; xxx++; } } document.getElementById("<%= editorName %>ToolbarFormatButtonSourceCodeImg").title = "<%= resourceBundle.getString("SourceMode") %>"; document.getElementById("<%= editorName %>ToolbarFormatButtonSourceCodeImg").alt = "<%= resourceBundle.getString("SourceMode") %>"; for (var i=0;i<theScriptToolbars.length;i++){ var temparray=theScriptToolbars1[theScriptToolbars[i]]; for (var j=0;j<temparray.length;j++){ var tmparr= "<%= editorName %>"+theScriptToolbars[i]+temparray[j]; document.getElementById(tmparr).style.display = ''; } } IBM_RTE_getWindow("<%= editorName %>").focus(); } }function getFirstComments(){ return FirstComments;}function setFirstComments(fcomment){ FirstComments=fcomment;}function Trim(s){ while ((s.substring(0,1) == ' ')|| (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) { s = s.substring(1,s.length); } return s;}function retainFirstComments(fullString){ var substr1=""; var substr2=""; var gout=true; var secondTime=false; while(gout==true){ if ( fullString.indexOf("<!--") !=-1 || fullString.indexOf("-->")!=-1 ){ var substr3=Trim(fullString.substring(0, fullString.indexOf("<!--"))); if (substr3!="" && secondTime==true) gout=false; else{ substr1= fullString.substring(0,fullString.indexOf("-->")+3); substr2=substr2+substr1; fullString=fullString.substring(fullString.indexOf("-->")+3,fullString.length); secondTime=true; }//if1 end }// outer if else { gout=false; }// outer end }// for while setFirstComments(substr2); return substr2; }//function end // Define JS object array to hold window controls datafunction winControls(name, definition, editor, loadUrl, keyModifier, keyAlphaNum, keyFile, keySequence, keyName, width, height, left, top) { this.name = name; this.definition = definition; this.editor = editor; this.loadUrl = loadUrl; this.keyModifier = keyModifier; this.keyAlphaNum = keyAlphaNum; this.keyFile = keyFile; this.keySequence = keySequence; this.keyName = keyName; this.width = width;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -