📄 main_xhtml.js
字号:
var onloadOverrided = false;function onload_new() { onload_original(); setMozEdit(); } function onload_original() { } function setMozEdit(idIframe) { if ((idIframe != null) && (idIframe!="")) { try {document.getElementById(idIframe).contentDocument.designMode="on";} catch(e) {} } else { for (var i=0; i<oUtil.arrIframe.length; i++) { try {document.getElementById(oUtil.arrIframe[i]).contentDocument.designMode="on";} catch(e) {alert(e)} } } } function doCmd(idIframe,sCmd,sOption) { var oEditor=document.getElementById(idIframe).contentWindow; oEditor.document.execCommand(sCmd,false,sOption); }function getHTMLBody(idIframe) { var oEditor=document.getElementById(idIframe).contentWindow; sHTML=oEditor.document.body.innerHTML; sHTML=String(sHTML).replace(/ contentEditable=true/g,""); sHTML = String(sHTML).replace(/\<PARAM NAME=\"Play\" VALUE=\"0\">/ig,"<PARAM NAME=\"Play\" VALUE=\"-1\">"); return sHTML; }function getXHTMLBody(idIframe) { var oEditor=document.getElementById(idIframe).contentWindow; this.cleanDeprecated(idIframe); return recur(oEditor.document.body,""); }/*Insert custon HTML function*/function insertHTML(idIframe, sHTML) { var oEditor=document.getElementById(idIframe).contentWindow; var oSel=oEditor.getSelection(); var range = oSel.getRangeAt(0); var docFrag = range.createContextualFragment(sHTML); range.collapse(true); var lastNode = docFrag.childNodes[docFrag.childNodes.length-1]; range.insertNode(docFrag); try { oEditor.document.designMode="on"; } catch (e) {} if (lastNode.nodeType==Node.TEXT_NODE) { range = oEditor.document.createRange(); range.setStart(lastNode, lastNode.nodeValue.length); range.setEnd(lastNode, lastNode.nodeValue.length); oSel = oEditor.getSelection(); oSel.removeAllRanges(); oSel.addRange(range); } }/************************************ CLEAN DEPRECATED TAGS; Used in loadHTML, getHTMLBody, getXHTMLBody *************************************/function cleanDeprecated(idIframe) { var oEditor=document.getElementById(idIframe).contentWindow; var elements; //elements=oEditor.document.body.getElementsByTagName("STRONG"); //this.cleanTags(idIframe,elements,"bold"); //elements=oEditor.document.body.getElementsByTagName("B"); //this.cleanTags(idIframe,elements,"bold"); //elements=oEditor.document.body.getElementsByTagName("I"); //this.cleanTags(idIframe,elements,"italic"); //elements=oEditor.document.body.getElementsByTagName("EM"); //this.cleanTags(idIframe,elements,"italic"); elements=oEditor.document.body.getElementsByTagName("STRIKE"); this.cleanTags(idIframe,elements,"line-through"); elements=oEditor.document.body.getElementsByTagName("S"); this.cleanTags(idIframe,elements,"line-through"); elements=oEditor.document.body.getElementsByTagName("U"); this.cleanTags(idIframe,elements,"underline"); this.replaceTags(idIframe,"DIR","DIV"); this.replaceTags(idIframe,"MENU","DIV"); this.replaceTags(idIframe,"CENTER","DIV"); this.replaceTags(idIframe,"XMP","PRE"); this.replaceTags(idIframe,"BASEFONT","SPAN");//will be removed by cleanEmptySpan() elements=oEditor.document.body.getElementsByTagName("APPLET"); while(elements.length>0) { var f = elements[0]; theParent = f.parentNode; theParent.removeChild(f); } this.cleanFonts(idIframe); this.cleanEmptySpan(idIframe); return true; }function cleanEmptySpan(idIframe) { var bReturn=false; var oEditor=document.getElementById(idIframe).contentWindow; var reg = /<\s*SPAN\s*>/gi; while (true) { var allSpans = oEditor.document.getElementsByTagName("SPAN"); if(allSpans.length==0) break; var emptySpans = []; for (var i=0; i<allSpans.length; i++) { if (getOuterHTML(allSpans[i]).search(reg) == 0) emptySpans[emptySpans.length]=allSpans[i]; } if (emptySpans.length == 0) break; var theSpan, theParent; for (var i=0; i<emptySpans.length; i++) { theSpan = emptySpans[i]; theParent = theSpan.parentNode; if (!theParent) continue; if (theSpan.hasChildNodes()) { var range = oEditor.document.createRange(); range.selectNodeContents(theSpan); var docFrag = range.extractContents(); theParent.replaceChild(docFrag, theSpan); } else { theParent.removeChild(theSpan); } bReturn=true; } } return bReturn; } function cleanFonts(idIframe) { var oEditor=document.getElementById(idIframe).contentWindow; var allFonts = oEditor.document.body.getElementsByTagName("FONT"); if(allFonts.length==0)return false; var f; var range; while (allFonts.length>0) { f = allFonts[0]; if (f.hasChildNodes && f.childNodes.length==1 && f.childNodes[0].nodeType==1 && f.childNodes[0].nodeName=="SPAN") { //if font containts only span child node var theSpan = f.childNodes[0]; copyAttribute(theSpan, f); range = oEditor.document.createRange(); range.selectNode(f); range.insertNode(theSpan); range.selectNode(f); range.deleteContents(); } else if (f.parentNode.nodeName=="SPAN" && f.parentNode.childNodes.length==1) { //font is the only child node of span. var theSpan = f.parentNode; copyAttribute(theSpan, f); theSpan.innerHTML = f.innerHTML; } else { var newSpan = oEditor.document.createElement("SPAN"); copyAttribute(newSpan, f); newSpan.innerHTML = f.innerHTML; f.parentNode.replaceChild(newSpan, f); } } return true; }function cleanTags(idIframe,elements,sVal) { var oEditor=document.getElementById(idIframe).contentWindow; if(elements.length==0)return false; var f;var range; while(elements.length>0) { f = elements[0]; if(f.hasChildNodes && f.childNodes.length==1 && f.childNodes[0].nodeType==1 && f.childNodes[0].nodeName=="SPAN") {//if font containts only span child node var theSpan=f.childNodes[0]; if(sVal=="bold")theSpan.style.fontWeight="bold"; if(sVal=="italic")theSpan.style.fontStyle="italic"; if(sVal=="line-through")theSpan.style.textDecoration="line-through"; if(sVal=="underline")theSpan.style.textDecoration="underline"; range=oEditor.document.createRange(); range.selectNode(f); range.insertNode(theSpan); range.selectNode(f); range.deleteContents(); } else if (f.parentNode.nodeName=="SPAN" && f.parentNode.childNodes.length==1) { //font is the only child node of span. var theSpan=f.parentNode; if(sVal=="bold")theSpan.style.fontWeight="bold"; if(sVal=="italic")theSpan.style.fontStyle="italic"; if(sVal=="line-through")theSpan.style.textDecoration="line-through"; if(sVal=="underline")theSpan.style.textDecoration="underline"; theSpan.innerHTML=f.innerHTML; } else { var newSpan = oEditor.document.createElement("SPAN"); if(sVal=="bold")newSpan.style.fontWeight="bold"; if(sVal=="italic")newSpan.style.fontStyle="italic"; if(sVal=="line-through")newSpan.style.textDecoration="line-through"; if(sVal=="underline")newSpan.style.textDecoration="underline"; newSpan.innerHTML=f.innerHTML; f.parentNode.replaceChild(newSpan,f); } } return true; }function replaceTags(idIframe,sFrom,sTo) { var oEditor=document.getElementById(idIframe).contentWindow; var elements=oEditor.document.body.getElementsByTagName(sFrom); while(elements.length>0) { f = elements[0]; var newSpan = oEditor.document.createElement(sTo); newSpan.innerHTML=f.innerHTML; f.parentNode.replaceChild(newSpan,f); } }function copyAttribute(newSpan,f) { if ((f.face != null) && (f.face != ""))newSpan.style.fontFamily=f.face; if ((f.size != null) && (f.size != "")) { var nSize=""; if(f.size==1)nSize="8pt"; else if(f.size==2)nSize="10pt"; else if(f.size==3)nSize="12pt"; else if(f.size==4)nSize="14pt"; else if(f.size==5)nSize="18pt"; else if(f.size==6)nSize="24pt"; else if(f.size>=7)nSize="36pt"; else if(f.size<=-2||f.size=="0")nSize="8pt"; else if(f.size=="-1")nSize="10pt"; else if(f.size==0)nSize="12pt"; else if(f.size=="+1")nSize="14pt"; else if(f.size=="+2")nSize="18pt"; else if(f.size=="+3")nSize="24pt"; else if(f.size=="+4"||f.size=="+5"||f.size=="+6")nSize="36pt"; else nSize=""; if(nSize!="")newSpan.style.fontSize=nSize; } if ((f.style.backgroundColor != null)&&(f.style.backgroundColor != ""))newSpan.style.backgroundColor=f.style.backgroundColor; if ((f.color != null)&&(f.color != ""))newSpan.style.color=f.color; }function GetElement(oElement,sMatchTag)//Used in realTime() only. { while (oElement!=null&&oElement.tagName!=sMatchTag) { if(oElement.tagName=="BODY")return null; oElement=oElement.parentNode; } return oElement; }/************************************ HTML to XHTML*************************************/function lineBreak1(tag) //[0]<TAG>[1]text[2]</TAG> { arrReturn = ["\n","",""]; if( tag=="A"||tag=="B"||tag=="CITE"||tag=="CODE"||tag=="EM"|| tag=="FONT"||tag=="I"||tag=="SMALL"||tag=="STRIKE"||tag=="BIG"|| tag=="STRONG"||tag=="SUB"||tag=="SUP"||tag=="U"||tag=="SAMP"|| tag=="S"||tag=="VAR"||tag=="BASEFONT"||tag=="KBD"||tag=="TT") arrReturn=["","",""]; if( tag=="TEXTAREA"||tag=="TABLE"||tag=="THEAD"||tag=="TBODY"|| tag=="TR"||tag=="OL"||tag=="UL"||tag=="DIR"||tag=="MENU"|| tag=="FORM"||tag=="SELECT"||tag=="MAP"||tag=="DL"||tag=="HEAD"|| tag=="BODY"||tag=="HTML") arrReturn=["\n","","\n"]; if( tag=="STYLE"||tag=="SCRIPT") arrReturn=["\n","",""];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -