📄 main_xhtml.js
字号:
}function fixAttr(s) { s = String(s).replace(/&/g, "&"); s = String(s).replace(/</g, "<"); s = String(s).replace(/"/g, """); return s; }function fixVal(s) { s = String(s).replace(/&/g, "&"); s = String(s).replace(/</g, "<"); var x = escape(s); x = unescape(x.replace(/\%A0/gi, "-*REPL*-")); s = x.replace(/-\*REPL\*-/gi, " "); return s; }function recur(oEl,sTab) { var sHTML=""; for(var i=0;i<oEl.childNodes.length;i++) { var oNode=oEl.childNodes(i); if(oNode.nodeType==1)//tag { var sTagName = oNode.nodeName; var sCloseTag = oNode.outerHTML; if (sCloseTag.indexOf("<?xml:namespace") > -1) sCloseTag=sCloseTag.substr(sCloseTag.indexOf(">")+1); sCloseTag = sCloseTag.substring(1, sCloseTag.indexOf(">")); if (sCloseTag.indexOf(" ")>-1) sCloseTag=sCloseTag.substring(0, sCloseTag.indexOf(" ")); var bDoNotProcess=false; if(sTagName.substring(0,1)=="/") { bDoNotProcess=true;//do not process } else { /*** tabs ***/ var sT= sTab; sHTML+= lineBreak1(sTagName)[0]; if(lineBreak1(sTagName)[0] !="") sHTML+= sT;//If new line, use base Tabs /************/ } if(bDoNotProcess) { ;//do not process } else if(sTagName=="OBJECT" || sTagName=="EMBED") { s=oNode.outerHTML; s=s.replace(/\"[^\"]*\"/ig,function(x){ x=x.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "'").replace(/\s+/ig,"#_#"); return x}); s=s.replace(/<([^ >]*)/ig,function(x){return x.toLowerCase()}); s=s.replace(/ ([^=]+)=([^"' >]+)/ig," $1=\"$2\"");//new s=s.replace(/ ([^=]+)=/ig,function(x){return x.toLowerCase()}); s=s.replace(/#_#/ig," "); s=s.replace(/<param([^>]*)>/ig,"\n<param$1 />").replace(/\/ \/>$/ig," \/>");//no closing tag if(sTagName=="EMBED") if(oNode.innerHTML=="") s=s.replace(/>$/ig," \/>").replace(/\/ \/>$/ig,"\/>");//no closing tag s=s.replace(/<param name=\"Play\" value=\"0\" \/>/,"<param name=\"Play\" value=\"-1\" \/>"); sHTML+=s; } else if(sTagName=="TITLE") { sHTML+="<title>"+oNode.innerHTML+"</title>"; } else { if(sTagName=="AREA") { var sCoords=oNode.coords; var sShape=oNode.shape; } var oNode2=oNode.cloneNode(); if (oNode.checked) oNode2.checked=oNode.checked; s=oNode2.outerHTML.replace(/<\/[^>]*>/,""); s = s.replace(/(\r\n)+/,""); if(sTagName=="STYLE") { var arrTmp=s.match(/<[^>]*>/ig); s=arrTmp[0]; } s=s.replace(/\"[^\"]*\"/ig,function(x){ //x=x.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "'").replace(/\s+/ig,"#_#"); //x=x.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\s+/ig,"#_#"); x=x.replace(/&/g, "&").replace(/&amp;/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\s+/ig,"#_#"); return x}); //info ttg: .replace(/&amp;/g, "&") //ini karena '&' di (hanya) '&' selalu di-replace lagi dgn &. //tapi kalau < , > tdk (no problem) => default behaviour s=s.replace(/<([^ >]*)/ig,function(x){return x.toLowerCase()}); s=s.replace(/ ([^=]+)=([^" >]+)/ig," $1=\"$2\""); s=s.replace(/ ([^=]+)=/ig,function(x){return x.toLowerCase()}); s=s.replace(/#_#/ig," "); //single attribute s=s.replace(/[<hr]?(noshade)/ig,"noshade=\"noshade\""); s=s.replace(/[<input]?(checked)/ig,"checked=\"checked\""); s=s.replace(/[<select]?(multiple)/ig,"multiple=\"multiple\""); s=s.replace(/[<option]?(selected)/ig,"selected=\"true\""); s=s.replace(/[<input]?(readonly)/ig,"readonly=\"readonly\""); s=s.replace(/[<input]?(disabled)/ig,"disabled=\"disabled\""); s=s.replace(/[<td]?(nowrap )/ig,"nowrap=\"nowrap\" "); s=s.replace(/[<td]?(nowrap\>)/ig,"nowrap=\"nowrap\"\>"); s=s.replace(/ contenteditable=\"true\"/ig,""); if(sTagName=="AREA") { s=s.replace(/ coords=\"0,0,0,0\"/ig," coords=\""+sCoords+"\""); s=s.replace(/ shape=\"RECT\"/ig," shape=\""+sShape+"\""); } var bClosingTag=true; if(sTagName=="IMG"||sTagName=="BR"|| sTagName=="AREA"||sTagName=="HR"|| sTagName=="INPUT"||sTagName=="BASE"|| sTagName=="LINK")//no closing tag { s=s.replace(/>$/ig," \/>").replace(/\/ \/>$/ig,"\/>");//no closing tag bClosingTag=false; } sHTML+=s; /*** tabs ***/ if(sTagName!="TEXTAREA")sHTML+= lineBreak1(sTagName)[1]; if(sTagName!="TEXTAREA")if(lineBreak1(sTagName)[1] !="") sHTML+= sT;//If new line, use base Tabs /************/ if(bClosingTag) { /*** CONTENT ***/ s=oNode.outerHTML; if(sTagName=="SCRIPT") { s = s.replace(/<script([^>]*)>[\n+\s+\t+]*/ig,"<script$1>");//clean spaces s = s.replace(/[\n+\s+\t+]*<\/script>/ig,"<\/script>");//clean spaces s = s.replace(/<script([^>]*)>\/\/<!\[CDATA\[/ig,""); s = s.replace(/\/\/\]\]><\/script>/ig,""); s = s.replace(/<script([^>]*)>/ig,""); s = s.replace(/<\/script>/ig,""); s = s.replace(/^\s+/,'').replace(/\s+$/,''); sHTML+="\n"+ sT + "//<![CDATA[\n"+ sT + s + "\n"+ sT + "//]]>\n"+sT; } if(sTagName=="STYLE") { s = s.replace(/<style([^>]*)>[\n+\s+\t+]*/ig,"<style$1>");//clean spaces s = s.replace(/[\n+\s+\t+]*<\/style>/ig,"<\/style>");//clean spaces s = s.replace(/<style([^>]*)><!--/ig,""); s = s.replace(/--><\/style>/ig,""); s = s.replace(/<style([^>]*)>/ig,""); s = s.replace(/<\/style>/ig,""); s = s.replace(/^\s+/,"").replace(/\s+$/,""); sHTML+="\n"+ sT + "<!--\n"+ sT + s + "\n"+ sT + "-->\n"+sT; } if(sTagName=="DIV"||sTagName=="P") { if(oNode.innerHTML==""||oNode.innerHTML==" ") { sHTML+=" "; } else sHTML+=recur(oNode,sT+"\t"); } else { sHTML+=recur(oNode,sT+"\t"); } /*** tabs ***/ if(sTagName!="TEXTAREA")sHTML+=lineBreak1(sTagName)[2]; if(sTagName!="TEXTAREA")if(lineBreak1(sTagName)[2] !="")sHTML+=sT;//If new line, use base Tabs /************/ //sHTML+="</" + sTagName.toLowerCase() + ">"; sHTML+="</" + sCloseTag.toLowerCase() + ">";//spy bisa <a:b> } } } else if(oNode.nodeType==3)//text { sHTML+= fixVal(oNode.nodeValue); } else if(oNode.nodeType==8) { if(oNode.outerHTML.substring(0,2)=="<"+"%") {//server side script sTmp=(oNode.outerHTML.substring(2)); sTmp=sTmp.substring(0,sTmp.length-2); sTmp = sTmp.replace(/^\s+/,"").replace(/\s+$/,""); /*** tabs ***/ var sT= sTab; /************/ sHTML+="\n" + sT + "<%\n"+ sT + sTmp + "\n" + sT + "%>\n"+sT; } else {//comments sTmp=oNode.nodeValue; sTmp = sTmp.replace(/^\s+/,"").replace(/\s+$/,""); sHTML+="\n" + sT + "<!--\n"+ sT + sTmp + "\n" + sT + "-->\n"+sT; } } else { ;//Not Processed } } return sHTML; } function toggleViewSource(chk, idIframe) { if (chk.checked) { //view souce viewSource(idIframe); } else { //wysiwyg mode applySource(idIframe); }}function viewSource(idIframe) { var oEditor=eval(idIframe); var sHTML=getXHTMLBody(idIframe); var docBody = oEditor.document.body; docBody.innerHTML = ""; docBody.innerText = sHTML.replace(/\n+/, "");}function applySource(idIframe) { var oEditor=eval(idIframe); var s = oEditor.document.documentElement.outerHTML; var arrTmp = s.split("<BODY") var beforeBody = arrTmp[0] + "<BODY" + arrTmp[1].substring(0, arrTmp[1].indexOf(">")+1); var afterBody = s.substr(s.indexOf("</BODY>")); var body = oEditor.document.body.innerText //alert(beforeBody + oEditor.document.body.innerText + afterBody); var oDoc = oEditor.document.open("text/html", "replace"); oDoc.write(beforeBody + body + afterBody); oDoc.close(); oEditor.document.body.contentEditable=true oEditor.document.execCommand("2D-Position", true, true); oEditor.document.execCommand("MultipleSelection", true, true); oEditor.document.execCommand("LiveResize", true, true); oEditor.document.body.onmouseup=function() { oUtil.oEditor = oEditor } ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -