📄 whhost.js
字号:
// WebHelp 5.10.002var gaChunks=new Array();var gaFakes=new Array();var gaDataCon=null;var gaData=new Array();var gbFindCK=false;;var gbNeedCalc=false;var gbScrl=false;var gbProcess=false;var gbReady=false;var gnCheck=0;var gnNum=0;var gnIns=-1;var gnLoad=0;var gnRef=-1;var gnMaxItems=0;var gnMaxMargin=32000;var gnNeeded=0;var gnNKI=-1;var gnRE=0;var gnScrlMgn=30;var gnSE=0;var gnVisible=0;var gnItems=0;var gnUHeight=1;var gsBCK=null;var gsChK=null;var gsCK=null;var gsLoadingDivID="LoadingDiv";var gsLoadingMsg="Loading data, please wait...";var gsSKA=null;var gsSKB=null;var gbLoadInfo=false;function onLoadXMLError(){ if(gbLoadInfo) { var aChunk=new Array(); projReady(aChunk); } else { var aData=new Array(); putData(aData); }}function putDataXML(xmlDoc,sDocPath){ if(gbLoadInfo) { var node=xmlDoc.lastChild; if(node) { var nTotal=0 var aChunk=new Array(); var oC=node.firstChild; while(oC) { if(oC.nodeName=="chunkinfo") { var item=new Object(); item.sBK=oC.getAttribute("first"); item.sEK=oC.getAttribute("last"); item.sFileName=oC.getAttribute("url"); item.nNum=parseInt(oC.getAttribute("num")); nTotal+=item.nNum; item.nTotal=nTotal; aChunk[aChunk.length]=item; } oC=oC.nextSibling; } projReady(aChunk); } } else { var node=xmlDoc.lastChild; if(node) { var aData=new Array(); var nPrev=0; var nNext=0; var oC=node.firstChild; while(oC) { nPrev=nNext; if(oC.nodeName=="key") { var sName=oC.getAttribute("name"); if(sName&&sName.length>0) { var sTarget=oC.getAttribute("target"); var item=new Object(); item.nType=2; item.sName=sName; if(sTarget) item.sTarget=sTarget; item.nPKOff=nPrev; aData[aData.length]=item; var nCurIndex=aData.length; processKey(oC,aData,item); nNext=aData.length-nCurIndex; item.nNKOff=nNext; } } else if(oC.nodeName=="letter") { var name=oC.getAttribute("name"); if(name&&name.length>0) { var item=new Object(); item.nType=1; item.sName=name; item.nPKOff=nPrev; nNext=0; item.nNKOff=nNext; aData[aData.length]=item; } } else if(oC.nodeName=="entry") { var name=oC.getAttribute("name"); var def=oC.getAttribute("value"); if(name&&name.length>0) { var item=new Object(); item.sName=name; item.sDef=def; item.nPKOff=nPrev; nNext=0; item.nNKOff=nNext; aData[aData.length]=item; } } oC=oC.nextSibling; } putData(aData); } }}function processKey(element,aData,item){ var i=0; var nPrev=0; var nNext=0; var oC=element.firstChild; while(oC) { if(oC.nodeName=="topic") { var name=oC.getAttribute("name"); var url=oC.getAttribute("url"); if(url&&url.length!=0) { if(!name||name.length==0) name=url; var topic=new Object(); topic.sName=name; topic.sURL=url; if(!item.aTopics) item.aTopics=new Array(); item.aTopics[item.aTopics.length]=topic; } } else if(oC.nodeName=="key") { nPrev=nNext; var name=oC.getAttribute("name"); if(name&&name.length!=0) { var subItem=new Object(); subItem.sName=name; subItem.nType=3; subItem.nPKOff=nPrev; aData[aData.length]=subItem; var nCurIndex=aData.length; processKey(oC,aData,subItem); nNext=aData.length-nCurIndex; subItem.nNKOff=nNext; } } oC=oC.nextSibling; }}function putData(aData){ endLoading(); var oCData=goCData; if(oCData) { oCData.aKs=aData; if(gnNKI==-1) setTimeout("checkReady();",1); else { gsSKA=getKByIdx(oCData,gnNKI); gbNeedCalc=true; gbScrl=true; gnNKI=-1; if(gsSKA) setTimeout("checkReady();",1); else { markEnd(); setTimeout("checkAgain();",50); } } }}function markEnd(){ if(gbProcess) gbProcess=false;}function endLoading(){ var oDiv=getElement(gsLoadingDivID); if(oDiv) oDiv.style.visibility="hidden";}function markBegin(){ gbProcess=true;}function beginLoading(){ var oDiv=getElement(gsLoadingDivID); if(oDiv) { oDiv.style.top=document.body.scrollTop; oDiv.style.visibility="visible"; }}function indexHTMLPart(){ this.sHTML=""; this.nNeeded=0; this.nCurrent=0; this.nConsumed=0; this.sFK=null; this.sLK=null; this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){ if(bDown) this.sHTML+=sHTML; else this.sHTML=sHTML+this.sHTML; this.nCurrent++; this.nConsumed+=nConsumed; if(bK) { if(!this.sFK) this.sFK=sK; if(!this.sLK) this.sLK=sK; if(bDown) this.sLK=sK; else this.sFK=sK; } } this.appendHTML=function(oHTML,bDown){ this.addSubHTML(oHTML,bDown); if(!this.sFK) this.sFK=oHTML.sFK; if(!this.sLK) this.sLK=oHTML.sLK; if(bDown) this.sLK=oHTML.sLK; else this.sFK=oHTML.sFK; } this.addSubHTML=function(oHTML,bDown){ if(bDown) this.sHTML+=oHTML.sHTML; else this.sHTML=oHTML.sHTML+this.sHTML; this.nCurrent+=oHTML.nCurrent; this.nConsumed+=oHTML.nConsumed; }}function getMaxUnits(){ return Math.floor(gnMaxMargin/gnUHeight)+1;}function getFakeItemsHTMLbyCount(nB,nCount){ var nMU=getMaxUnits(); var nNum=Math.floor(nCount/nMU); var sHTML=""; for(var i=0;i<nNum;i++) sHTML+=getFakeItemHTML(nB,nMU-1); var nRest=nCount%nMU; sHTML+=getFakeItemHTML(nB,nRest-1); return sHTML;}function getFakeItemHTML(nB,nNum){ return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\"> </h6>";}function fakeItemsArea(nB,n,sKA,sKB,obj){ this.nB=nB; this.nNum=n; this.sKA=sKA; this.sKB=sKB; this.obj=obj; this.nMargin=(n-1)*gnUHeight; this.setNum=function(n) { var nLastobj=-1; var nDelta=this.nMargin; this.nMargin=(n-1)*gnUHeight; nDelta=nDelta-this.nMargin; if(n>0) { this.nNum=n; var nMU=getMaxUnits(); nLastobj=Math.floor((n-1)/nMU); if(this.obj.length) this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight; else this.obj.style.marginTop=((n-1)%nMU)*gnUHeight; } if(this.obj.length) { for(var i=this.obj.length-1;i>nLastobj;i--) removeThis(this.obj[i]); } else { if(nLastobj==-1) removeThis(this.obj); } return nDelta; } this.insertAdjacentHTML=function(sWhere,sHTML) { if(sWhere=="beforeBegin") { if(this.obj.length) this.obj[0].insertAdjacentHTML(sWhere,sHTML); else this.obj.insertAdjacentHTML(sWhere,sHTML); } else if(sWhere=="afterEnd") { if(this.obj.length) { if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling) this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML); else this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML); } else { if(gbMac&&gbIE5&&this.obj.nextSibling) this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML); else this.obj.insertAdjacentHTML(sWhere,sHTML); } } } this.getBtm=function() { if(this.obj.length) return this.obj[this.obj.length-1].offsetTop; else return this.obj.offsetTop; } this.getTop=function() { return this.getBtm()-this.nMargin; }}function usedItems(nB,nE){ this.nB=nB; this.nE=nE; this.oN=null;}function checkReady(){ var len=gaChunks.length; var bNeedLoad=false; var aDataCon; var s=0; var bDown=(gsSKB==null); var sK=bDown?gsSKA:gsSKB; if(sK==null) { markEnd(); setTimeout("checkAgain();",50); return; } if(!gsChK||sK!=gsChK||gnNum==0) { gnCheck=0; gsChK=sK; aDataCon=new Array(); } else{ s=gnNum; aDataCon=gaDataCon; } for(var i=gnCheck;i<len;i++) { var oCData=getChunkedData(i,bDown,sK); if(oCData) { if(!oCData.aKs&&oCData.sFileName!=null) { bNeedLoad=true; goCData=oCData; gnNum=s; gnCheck=i; gaDataCon=aDataCon; oCData.nProjId=i; gbLoadInfo=false; beginLoading(); loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName); return; } else{ aDataCon[s++]=oCData; } } } if(!bNeedLoad) { gnNum=0; gsSKA=gsSKB=gsShowK=null; var oHTML=new indexHTMLPart(); var aPos=new Array(); var aOriPos=new Array(); var aMaxPos=new Array(); var aMinPos=new Array(); if(gbNeedCalc||gbFindCK) gnIns=0; for(i=0;i<aDataCon.length;i++) { aPos[i]=getIdxPos(aDataCon[i],bDown,sK); if(gbNeedCalc||gbFindCK) { gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum; if(!bDown) { if(aPos[i]!=-1) { if(aDataCon[i].aKs) gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff; else { var n=aPos[i]+1; while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n]) n++; n=n-aPos[i]-1; gnIns+=n; } } } } aOriPos[i]=aPos[i]; getLimit(aDataCon,aPos,aMaxPos,aMinPos,i); } if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1) { gnIns+=(aDataCon.length-1) } if(gnIns!=-1||gbFindCK) { oHTML.nNeeded=gnNeeded; var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1); if(oHTML.nConsumed!=0) { var nB; if(!bDown) nB=gnIns-oHTML.nConsumed+1; else nB=gnIns; var oldScrollPos=document.body.scrollTop; if(insertIdxKs(nB,oHTML,gbScrl)) { updateUsedK(aDataCon,aOriPos,aPos,bDown); if(!gbScrl&&gbMac) { while(document.body.scrollTop!=oldScrollPos) document.body.scrollTop=oldScrollPos; } gbScrl=false; } if(gbFindCK) { gbFindCK=false; gbNeedCalc=true; gsSKB=oHTML.sFK; gnIns=-1; setTimeout("checkReady();",50); return; } } else if(gbFindCK) { gbFindCK=false; gbNeedCalc=true; gsSKB=getFirstKeyFromPos(aDataCon,aPos); gnIns=-1; setTimeout("checkReady();",50); return; } if(!findCKInDom()) return; gnNeeded=gnNeeded-oHTML.nCurrent; gnIns=-1; markEnd(); setTimeout("checkAgain();",50); gbNeedCalc=false; } else { if(!findCKInDom()) return; markEnd(); setTimeout("checkAgain();",50); } }}function getFirstKeyFromPos(aDataCon,aPos){ var sCurrentK=getBiggestChar(); for(var i=0;i<aPos.length;i++) { if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length) { if(sCurrentK==""|| compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0) { sCurrentK=aDataCon[i].aKs[aPos[i]].sName; } } } return sCurrentK;}function checkAgain(){ if(!gbProcess) { if(gsBCK!=null) { gsCK=gsBCK; gsBCK=null; findCK(); } else { markBegin(); getUnitIdx(document.body.scrollTop,document.body.clientHeight); } } else setTimeout("checkAgain()",50);}function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i){ aMaxPos[i]=aDataCon[i].nNum; aMinPos[i]=-1; var oPNode=null; if(aDataCon[i].oUsedItems) { var oUsedItems=aDataCon[i].oUsedItems; do{ if(oUsedItems.nB>aPos[i]) { aMaxPos[i]=oUsedItems.nB; break; } oPNode=oUsedItems; oUsedItems=oUsedItems.oN; }while(oUsedItems!=null); if(oPNode) aMinPos[i]=oPNode.nE; } else if(aDataCon[i].aKs==null) { aMaxPos[i]=aMinPos[i]=aPos[i]; } if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i]) { aMaxPos[i]=aMinPos[i]=aPos[i]; }}function getIdxPos(oIdx,bDown,sK){ var aKs=oIdx.aKs; var nIdx; if(bDown) nIdx=oIdx.nNum; else nIdx=-1; if(aKs!=null) { for(var i=0;i<aKs.length;i++) { if(bDown) { if(compare(aKs[i].sName,sK)>0) { nIdx=i; break; } } else { if(compare(aKs[i].sName,sK)<0) nIdx=i; else break; } i+=aKs[i].nNKOff; } } else if(oIdx.aKsOnly) { var aKsOnly=oIdx.aKsOnly; for(var i=0;i<aKsOnly.length;i++) { if(aKsOnly[i])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -