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

📄 html_edit.js

📁 是个不错的文件代码,希望大家好好用,
💻 JS
📖 第 1 页 / 共 3 页
字号:

var bodyid,htmlableID,tmp_uppath;
var jk_edit_olddocmd; 

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 is_ie4 = ((parseInt(navigator.appVersion)  == 4) && (navigator.userAgent.toLowerCase().indexOf("msie 5")==-1) && (navigator.userAgent.toLowerCase().indexOf("msie 6")==-1) );

aeObjects = new Array(); 
var aeFieldnames = new Array();
var DHTMLSafe; 
var jk_edit_count;
var jk_edit_hot; 
var jk_edit_sourceview=false; 
var jk_edit_oldfontfamily='';  
var jk_edit_oldfontsize='';
var jk_edit_HTMLMode = new Array(); 

var tableparamobj=new ActiveXObject("DEInsertTableParam.DEInsertTableParam");
tableparamobj.NumRows=3;
tableparamobj.NumCols=3;   
tableparamobj.Caption="";
tableparamobj.TableAttrs="border=0 cellpadding=0 cellspacing=0 width=75%";
tableparamobj.CellAttrs="";

var alloweditsource = new Array();
var tabview = new Array();
var jk_edit_fieldname = new Array();        
var jk_edit_imagedata = new Array();        
var jk_edit_imageurl = new Array();
var jk_edit_defaultfont = new Array();        
var jk_edit_baseurl = new Array();        
var jk_edit_breakonenter = new Array();
var inc = '';  
jk_edit_breakonenter[1] = true;
jk_edit_baseurl[1] = document.location;
jk_edit_defaultfont[1] ="" ;
tabview[1] = false;
alloweditsource[1] = true;
jk_edit_imagedata[1] = '';        
//jk_edit_imageurl[1] = '/media';
jk_edit_imageurl[1] = '../piclibrary';

function jk_edit_init(num)
{
  var q=window.location.href;
  var a;
  q=q.substr(q.indexOf("?")+1);
  q=q.split("&");
  if (q.length<2) { return true; }
  a=q[0].split("=");
  bodyid=a[1];
  a=q[1].split("=");
  htmlableID=a[1];
  a=q[2].split("=");
  tmp_uppath=a[1];
  if (bodyid=="2")
  { eval("document.all.jk_word.value=self.opener."+htmlableID+".value;"); }
  else
  { eval("document.all.jk_word.value=ubb2html(self.opener."+htmlableID+".value);"); }
}

function jk_edit_save(num)
{
  eval("self.opener."+htmlableID+".value=DHTMLSafe.DOM.body.innerHTML;");
  self.close();
}

function jk_edit_initialize(num)
{
  jk_edit_count=num;
  thisContentItem=eval("document.all.jk_word");
  thisForm=thisContentItem;
  while(thisForm.tagName!="FORM"&&thisForm.tagName!="HTML") { thisForm=thisForm.parentElement; }
  if(thisForm.tagName!="HTML")
  {    
    DHTMLSafe = eval("thisForm.DHTMLSafe"+num);
    aeObjects[num] = DHTMLSafe;
    aeObjects[thisContentItem.name] = DHTMLSafe;
    aeFieldnames[num] = thisContentItem.name;
    thisForm.onsubmit = jk_edit_onSubmit;
  }
  else
  {
    alert("对不起,操作出错。", "", true);
    return;
  }
  DHTMLSafe.NewDocument();
  DHTMLSafe.BaseURL=jk_edit_baseurl[num];
  set_tbstates(num);
  jk_edit_onLoad(num);
  jk_edit_HTMLMode[num] = false;
}

function jk_edit_onerror(msg, detail, popup)
{
  errwin = this;
  if(popup) errwin = window.open("","","scrollbars=yes,width=500,height=400,resizable=yes", true);
  errwin.document.write("<HR>对不起,操作出错。</H4><P>");
  errwin.document.write(msg);
  errwin.document.write(detail);
  errwin.document.write("<P><P></TD></TR></TABLE><P><HR>");
}

function jk_edit_previewNewWin(p)
{
  prevWin = window.open("", "", "left=40,top=10,width=720,height=540,menubar=no,toolbar=no,location=no,status=no,resizable=yes,scrollbars=yes");
  if (jk_edit_HTMLMode[1] == true) { prevWin.document.write("<body size=2>" + DHTMLSafe.DOM.body.innerText);  }
  else { prevWin.document.write("<body size=2>" + DHTMLSafe.DOM.body.innerHTML);  }
  if (p==0)
  { prevWin.document.title = "内容预览"; }
  else
  {
    prevWin.document.write ("\n<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WB width=0></OBJECT>\n<script language=\"JavaScript\">WB.ExecWB(7,1);\<\/script>");
    prevWin.document.close;
  }
}

function jk_edit_onLoad(num)
{
  DHTMLSafe=aeObjects[num];
  if(DHTMLSafe.Busy)
  {
    setTimeout("jk_edit_onLoad("+num+");", 100);  
    return;
  }
  if(num==1) window.onunload = jk_edit_onUnload;
  if(jk_edit_defaultfont[num].length) 
  { DHTMLSafe.DOM.body.style.font=jk_edit_defaultfont[num]; }
  else
  {
    DHTMLSafe.DOM.body.style.fontFamily="宋体";
    DHTMLSafe.DOM.body.style.fontSize="12px";
  }
  if(oSel=eval('document.all.oQuickFormat'+num))
  {
    var f=new ActiveXObject("DEGetBlockFmtNamesParam.DEGetBlockFmtNamesParam");
    DHTMLSafe.ExecCommand(5012,0,f);
    vbarr = new VBArray(f.Names);
    arr = vbarr.toArray();
    for (var i=0;i<arr.length;i++)
    {
      oOption = document.createElement("OPTION");
      oSel.options.add(oOption);
      oOption.text=arr[i];
      oOption.name=arr[i];
    }
  }
  thisContentItem=eval("document.all.jk_word");
  if(thisContentItem.value.length) { aeObjects[num].DOM.body.innerHTML = thisContentItem.value; }
  else { aeObjects[num].DOM.body.innerHTML = " "; }
  set_tbstates(num);
  if(typeof(aeapi_local_onLoad)=='function') { aeapi_local_onLoad(DHTMLSafe, aeFieldnames[num]); }
  if (typeof(aeapi_onLoad)=='function') { aeapi_onLoad(DHTMLSafe, aeFieldnames[num]); }
}

function jk_edit_onUnload()
{
  var jk_edit_content = "";
  var i;
  for(i=1;i<=jk_edit_count;i++)
  {
    DHTMLSafe=aeObjects[i];
    thisContentItem = eval("document.all.jk_word");
    if(jk_edit_sourceview) jk_edit_editsourceinline(i,false);
    var content = DHTMLSafe.DOM.body.innerHTML;
    thisContentItem.value = content;
  }
}

function jk_edit_onSubmit()
{
  var jk_edit_content = "";
  var i;
  for(i=1;i<=jk_edit_count;i++)
  {
    DHTMLSafe=aeObjects[i];
    if(jk_edit_sourceview) jk_edit_editsourceinline(i,false);
    thisContentItem = eval("document.all.jk_word");
    if(typeof(aeapi_local_onBeforeSave)=='function')
    { jk_edit_content = aeapi_local_onBeforeSave(DHTMLSafe, aeFieldnames[i]); }
    else if (typeof(aeapi_onBeforeSave)=='function')
    { jk_edit_content = aeapi_onBeforeSave(DHTMLSafe, aeFieldnames[i]); }
    else
    { jk_edit_content = jk_edit_onBeforeSave(DHTMLSafe, aeFieldnames[i]); }
    thisContentItem.value = jk_edit_content;
  }
}

function jk_edit_onkeypress(num)
{
  var sel;
  DHTMLSafe=aeObjects[num];
  if(jk_edit_breakonenter[num]||jk_edit_sourceview)
  {
    switch(DHTMLSafe.DOM.parentWindow.event.keyCode)
    {
      case 10:
        DHTMLSafe.DOM.parentWindow.event.keyCode = 13;      
        break;
      case 13:
        if(DHTMLSafe.QueryStatus(5051)!=7)
        {
          DHTMLSafe.DOM.parentWindow.event.returnValue = false;    
          sel = DHTMLSafe.DOM.selection.createRange();
          sel.pasteHTML("<BR>");
          sel.collapse(false);
          sel.select();
        }
        break;
      default:
        break;
    }
  }
}

function jk_edit_clear()
{
  if (confirm("您真的要清除所写的内容吗?")) { DHTMLSafe.DOM.body.innerHTML=""; }
  DHTMLSafe.focus();
  DHTMLSafe.DOM.body.focus();
}

function jk_edit_onmousedown(num)
{
  if(typeof(document.all.jk_edit_frame) != "undefined")
  {
    if(document.all.jk_edit_frame.style.visibility == "visible")
    {
      cancelTable(false);
      return;
    }
  }
}

function jk_edit_onclick(num) { set_tbstates(num); }

function jk_edit_ondisplaychange(num)
{
  if(DHTMLSafe.Busy) { return; }
  set_tbstates(num);
}

function jk_edit_onmenuaction(itemIndex, num) { jk_edit_onCommand(ContextMenu[itemIndex].cmdId, num); }

function jk_edit_Clear(cmdId, num) { }

function jk_edit_onCommand(cmdId, num)
{
  if (jk_edit_HTMLMode[num]) { alert("请先切换到可视编辑模式。");return; }
  if(typeof(num)=="undefined") { num=jk_edit_hot; }
  DHTMLSafe=aeObjects[num];
  if(cmdId==null) { cmdid=eval(window.event.srcElement.cid); }
  else { cmdid=cmdId; }
  doFocus=true;  
  switch(parseInt(cmdid))
  {
    case 5017:
      oSel = DHTMLSafe.DOM.selection;
      if (oSel.type == "Control")
      { jk_edit_imageProperties(num); }
      else
      {
        DHTMLSafe.DOM.selection.createRange().collapse(false);
        onImagewin(num);
      }
      doFocus=false;
      break;
    case 5022:
      onTableWin(num);
      doFocus=false;
      break;
    case 6001:
      if(tabview[num])
      { jk_edit_editsourceinline(num); }
      else
      { 
        jk_edit_editsource(num);
        doFocus=false;
      }
      break;
    case 6002:
      jk_edit_about();
      doFocus=false;
      break;
    case 6004:
      jk_edit_onToggleDetails(null, num);
      break;
    case 6006:
      editTableWin(num);
      doFocus=false;
      break;
    case 5016:
      jk_edit_hyperlinkwin(num);
      doFocus=false;
      break;
    case 6007:
      jk_edit_spellcheckwin(num);
      doFocus=false;
      break;
    case 6008:
      jk_edit_specialchars();
      doFocus=false;
      break;
    case 6009:
      oSel = DHTMLSafe.DOM.selection.createRange();
      for (i=0; i<oSel.length; i++)
      {
        if (oSel(i).tagName == "IMG")
        {
          jk_edit_imageProperties(num);
          doFocus=false;
        }
      }
      break;
    case 5032:
      jk_edit_onPaste(num);
      doFocus=false;
      break;
    case 6010:
      oSel = DHTMLSafe.DOM.selection;
      if (oSel.type == "Control")
      {
        alert("您已选中水平线。\n如需插入新的水平线,请先取消选择。");
        return;
      }
      else
      {
        jk_edit_onHr(num);
        doFocus=false;
      }
      break;
    default:
      if(DHTMLSafe.QueryStatus(cmdid)!=1) { DHTMLSafe.ExecCommand(cmdid, 0); }
      break;
  }
  if (doFocus)
  {
    DHTMLSafe.focus();
    DHTMLSafe.DOM.body.focus();
  }
}

function jk_edit_onHr(num)
{
  DHTMLSafe=aeObjects[num];
  DHTMLSafe.focus();
  if (typeof(jk_edit_hrwin) == "undefined" || jk_edit_hrwin.closed)
  {
    var szURL=inc + "win_hr.htm?instance=" + num;
    jk_edit_hrwin = window.showModalDialog(szURL,window,"dialogHeight: 210px; dialogWidth: 355px; dialogTop: 150px; dialogLeft: 150px; center: Yes; help: No; resizable: No; status: No;");
  }
}

function jk_edit_imageProperties(num)
{
  DHTMLSafe=aeObjects[num];
  DHTMLSafe.focus();
  if (typeof(jk_edit_imgpropwin) == "undefined" || jk_edit_imgpropwin.closed)
  {
    var szURL=inc + "win_img_edit.htm?instance=" + num;
    jk_edit_imgpropwin = window.showModalDialog(szURL,window,"dialogHeight: 300px; dialogWidth: 420px; dialogTop: 150px; dialogLeft: 150px; center: Yes; help: No; resizable: No; status: No;");
  }
}

function replaceFontsWithSpans(aeObject, oElement, sNewClass)
{
  for(var i=0;i<oElement.childNodes.length;i++) { replaceFontsWithSpans(aeObject, oElement.childNodes[i], sNewClass); }
  if(oElement.tagName=="FONT")
  {
    if(oElement.face=="jk_edit_newclass")
    {
      sPreserve=oElement.innerHTML;
      oNewNode=aeObject.DOM.createElement("SPAN");
      oElement.replaceNode(oNewNode);
      oNewNode.innerHTML=sPreserve;
      oNewNode.className=sNewClass;
    }
    if(oElement.xclass!=null)
    {
      sPreserve=oElement.innerHTML;
      sClass=oElement.xclass;
      oNewNode=aeObject.DOM.createElement("SPAN");
      oElement.replaceNode(oNewNode);
      oNewNode.innerHTML=sPreserve;
      oNewNode.className=sClass;
    }
    else
    {
      var style = "";
      if (oElement.face.length) { style += "font-family: " + oElement.face + ";"; }  
      if (oElement.size.length)
      {
        var sizeMap = new Array(7,7,9,12,14,18,24,36);
        var size = oElement.size;
        if (size > 7) size = 7;
        if (size==-1) size = 2;
        if (size==-2) size = 1;
        if (size < -2) size = 1;
        var ptsize = sizeMap[size];
        style += "font-size: " + ptsize + "pt;";
      }
      if (oElement.color.length) { style += "color: " + oElement.color + ";"; }
      if (style.length)
      {
        sPreserve=oElement.innerHTML;
        oNewNode=aeObject.DOM.createElement("SPAN");
        oElement.replaceNode(oNewNode);
        oNewNode.innerHTML=sPreserve;
        oNewNode.style.cssText=style;
      }
    }
  }
}

function condenseSpans(aeObject, oElement, oPrevious)
{
  for(var i=0;i<oElement.childNodes.length;i++)
  {
    var child = oElement.childNodes[i];
    oElement = condenseSpans(aeObject, child, oElement);
  }
  if (oElement.tagName=="SPAN" && oPrevious != null && oPrevious.tagName =="SPAN")
  {
    if (oElement.innerText == oPrevious.innerText)
    {
      cClass=oElement.className;
      pClass=oPrevious.className;
      if(pClass.length && !cClass.length) { oElement.setAttribute("class", pClass); }
      var css = oPrevious.style.cssText;
      var styleProps = css.split("; ");
      var curStyleProps = oElement.style.cssText.split("; ");
      for (var i=0;i<styleProps.length;i++)
      {
        var kv = styleProps[i].split(":");
        var key = kv[0];
        var value = kv[1];
        var hasProp = false;
        for (var k=0;k<curStyleProps.length;k++)
        {
          var ckv = curStyleProps[k].split(":");
          var cProp = ckv[0];
          var cValue = ckv[1];
          if (cProp == key)
          {
            hasProp = true;
            break;
          }
        }
        if (!hasProp) { oElement.style.cssText = oElement.style.cssText + ";" + key + ":" + value; }
      }
      oPrevious.removeNode(false);
      return oElement;
    }

⌨️ 快捷键说明

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