⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xhtmleditor.js

📁 从此不再用那些文章系统来做图片站了!有了专业的图片站程序了! 1:采用MSSQL数据库
💻 JS
📖 第 1 页 / 共 2 页
字号:
  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","",""];  if(tag=="BR"||tag=="HR")     arrReturn=["","\n",""];  return arrReturn;  }  function fixAttr(s)  {  s = String(s).replace(/&/g, "&amp;");  s = String(s).replace(/</g, "&lt;");  s = String(s).replace(/"/g, "&quot;");  return s;  }  function fixVal(s)  {  s = String(s).replace(/&/g, "&amp;");  s = String(s).replace(/</g, "&lt;");  var x = escape(s);  x = unescape(x.replace(/\%A0/gi, "-*REPL*-"));  s = x.replace(/-\*REPL\*-/gi, "&nbsp;");  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 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=getOuterHTML(oNode);        s=s.replace(/\"[^\"]*\"/ig,function(x){                       x=x.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/'/g, "&apos;").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(false);               s=getOuterHTML(oNode2).replace(/<\/[^>]*>/,"");                if(sTagName=="STYLE")          {          var arrTmp=s.match(/<[^>]*>/ig);          s=arrTmp[0];          }               s=s.replace(/\"[^\"]*\"/ig,function(x){            //x=x.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/'/g, "&apos;").replace(/\s+/ig,"#_#");            //x=x.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\s+/ig,"#_#");            x=x.replace(/&/g, "&amp;").replace(/&amp;amp;/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\s+/ig,"#_#");            return x});            //info ttg: .replace(/&amp;amp;/g, "&amp;")            //ini karena '&' di (hanya) '&amp;' selalu di-replace lagi dgn &amp;.            //tapi kalau &lt; , &gt; 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=getOuterHTML(oNode);          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=="&nbsp;")               {              sHTML+="&nbsp;";              }            else sHTML+=recur(oNode,sT+"\t");            }          else          if (sTagName == "STYLE" || sTagName=="SCRIPT")            {            //do nothing            }          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() + ">";          }             }           }    else if(oNode.nodeType==3)//text      {      sHTML+= fixVal(oNode.nodeValue);      }    else if(oNode.nodeType==8)      {      if(getOuterHTML(oNode).substring(0,2)=="<"+"%")        {//server side script        sTmp=(getOuterHTML(oNode).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        /*** tabs ***/        var sT= sTab;        /************/                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 getOuterHTML(node)   {    var sHTML = "";    switch (node.nodeType)     {        case Node.ELEMENT_NODE:            sHTML = "<" + node.nodeName;                        var tagVal ="";            for (var atr=0; atr < node.attributes.length; atr++)         {                       if (node.attributes[atr].nodeName.substr(0,4) == "_moz" ) continue;                if (node.attributes[atr].nodeValue.substr(0,4) == "_moz" ) continue;//yus                                if (node.nodeName=='TEXTAREA' && node.attributes[atr].nodeName.toLowerCase()=='value')           {                    tagVal = node.attributes[atr].nodeValue;          }         else           {                    sHTML += ' ' + node.attributes[atr].nodeName + '="' + node.attributes[atr].nodeValue + '"';          }        }            sHTML += '>';             sHTML += (node.nodeName!='TEXTAREA' ? node.innerHTML : tagVal);            sHTML += "</"+node.nodeName+">";            break;        case Node.COMMENT_NODE:            sHTML = "<!"+"--"+node.nodeValue+ "--"+">"; break;        case Node.TEXT_NODE:            sHTML = node.nodeValue; break;    }    return sHTML  }  function edt_toggleViewSource(chk) {    if (chk.checked) {        //view souce        this.viewSource();    } else {        //wysiwyg mode        this.applySource();    }}function edt_viewSource() {    var oEditor=document.getElementById("idContent"+this.oName).contentWindow;        this.cleanDeprecated();    var sHTML=recur(oEditor.document.body,"");    var docBody = oEditor.document.body;    docBody.innerHTML = "";    docBody.appendChild(oEditor.document.createTextNode(sHTML));}function edt_applySource() {    var oEditor=document.getElementById("idContent"+this.oName).contentWindow;        var range = oEditor.document.body.ownerDocument.createRange();    range.selectNodeContents(oEditor.document.body);    var sHTML = range.toString();    sHTML = sHTML.replace(/>\s+</gi, "><"); //replace space between tag    sHTML = sHTML.replace(/\r/gi, ""); //replace space between tag    sHTML = sHTML.replace(/(<br>)\s+/gi, "$1"); //replace space between BR and text    sHTML = sHTML.replace(/(<br\s*\/>)\s+/gi, "$1"); //replace space between <BR/> and text. spasi antara <br /> menyebebkan content menggeser kekanan saat di apply    sHTML = sHTML.replace(/\s+/gi, " "); //replace spaces with space        oEditor.document.body.innerHTML = sHTML;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -