📄 html_edit.js
字号:
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 + -