📄 whthost.js
字号:
// WebHelp 5.10.007
var gaHSLoad=new Array();
var gnMinIdx=0;
var gnInsIdx=-1;
var gsLoadingDivID="LoadingDiv";
var gsLoadingMsg="Loading, click here to cancel...";
var gaProj=null;
var gaTocs=new Array();
var goChunk=null;
var gbReady=false;
var gbToc=false;
var gbXML=false;
var gaRoot=new Array();
var gnCC=-1;
var gsTP="";
var gaBTPs="";
var gsCTPath="";
var gnLT=-1;
var gsPathSplit="\n";
var gsBgColor="#ffffff";
var gsBgImage="";
var goFont=null;
var goHFont=null;
var gsMargin="0pt";
var gsIndent="15pt";
var gsABgColor="#cccccc";
var giBookClose="";
var giBookOpen="";
var giBookItem="";
var giURLItem="";
var giNewBookClose="";
var giNewBookOpen="";
var giNewBookItem="";
var giNewURLItem="";
var gnImages=0;
var gnLoadedImages=0;
var gaImgs=new Array();
var gbLoadData=false;
var gobj=null;
var gaTocsNs61Fix=null;
var gbWhTHost=false;
var gBookItems=new Array();
var gInSync=false;
var gbLData=false;
var gbNeedFillStub=false;
var gbLoadToc=false;
function chunkInfoQueue()
{
this.aContent=new Array();
this.inQueue=function(cInfo)
{
this.aContent[this.aContent.length]=cInfo;
}
this.deQueue=function()
{
var cInfo=null;
if(this.aContent.length>0)
{
cInfo=this.aContent[0];
for(var i=1;i<this.aContent.length;i++)
this.aContent[i-1]=this.aContent[i];
this.aContent.length--;
}
return cInfo;
}
this.length=function()
{
return this.aContent.length;
}
}
var gchunkRequestQueue=new chunkInfoQueue();
function chunkInfo(nIdx, bLocal)
{
this.nIdx=nIdx;
this.bLocal=bLocal;
}
function setBackground(sBgImage)
{
gsBgImage=sBgImage;
}
function setBackgroundcolor(sBgColor)
{
gsBgColor=sBgColor;
}
function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
{
var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
if(sType=="Normal") goFont=vFont;
else if(sType=="Hover") goHFont=vFont;
}
function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
function setMargin(sMargin){gsMargin=sMargin;}
function setIndent(sIndent){gsIndent=sIndent;}
function setIcon(sType,sURL)
{
if(sType=="BookOpen")
giBookOpen=sURL;
else if(sType=="BookClose")
giBookClose=sURL;
else if(sType=="Item")
giBookItem=sURL;
else if(sType=="RemoteItem")
giURLItem=sURL;
else if(sType=="NewBookClose")
giNewBookClose=sURL;
else if(sType=="NewBookOpen")
giNewBookOpen=sURL;
else if(sType=="NewItem")
giNewBookItem=sURL;
else if(sType=="NewRemoteItem")
giNewURLItem=sURL;
}
function bookItem(sTarget,sURL)
{
if(sTarget)
this.sTarget=sTarget;
else
this.sTarget="bsscright";
this.sURL=sURL;
}
function addBookItem(sBookId,sTarget,sURL)
{
gBookItems[sBookId]=new bookItem(sTarget,sURL);
}
function tocChunk(sPPath,sDPath)
{
this.sPPath=sPPath;
this.sDPath=sDPath;
this.nMI=-1;
this.aTocs=null;
}
function addTocChunk(sPPath,sDPath)
{
var oChunk=new tocChunk(sPPath,sDPath);
gaTocs[gaTocs.length]=oChunk;
return oChunk;
}
function isHSLoad(nIdx)
{
for(var i=0;i<gaHSLoad.length;i++)
if(gaHSLoad[i]==nIdx)
return true;
return false;
}
function setHSLoad(nIdx)
{
if(!isHSLoad(nIdx))
{
var len=gaHSLoad.length;
for(var i=0;i<len;i++)
if(gaHSLoad[i]==-1)
{
gaHSLoad[i]=nIdx;
return;
}
gaHSLoad[len]=nIdx;
}
}
function setHSUnLoad(nIdx)
{
if(isHSLoad(nIdx))
{
for(var i=0;i<gaHSLoad.length;i++)
if(gaHSLoad[i]==nIdx)
{
gaHSLoad[i]=-1;
return;
}
}
}
function removeLoadingDiv()
{
var eLoadingDiv=getElement(gsLoadingDivID);
if(eLoadingDiv)
removeThis(eLoadingDiv);
}
function checkBookItem(nIdx)
{
if(!gInSync)
{
var sBookId=getBookId(nIdx);
if(gBookItems[sBookId])
{
window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
}
}
}
function insertBookItems(nIdx,num)
{
checkBookItem(nIdx);
var sChildBookId=getCBId(nIdx);
var eChildDiv=getElement(sChildBookId);
if(eChildDiv){
if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
(eChildDiv.all&&eChildDiv.all.length==0)){
var sHTML=writeBookItems(nIdx,num);
eChildDiv.innerHTML=sHTML;
setTimeout("syncInit()",1);
}
}
ExpandIt(nIdx);
}
function isBookEmpty(nIdx)
{
var num=getItemContentsNum(nIdx);
if (num>0)
{
var nCIdx=0;
do {
nCIdx++;
var i=nIdx+nCIdx;
var nItemType=getItemType(i);
if(nItemType==1){
if (!isBookEmpty(i))
return false;
}
else if(nItemType==4){
var sSrc=getRefURL(i);
var nProj=getProject(sSrc);
if(nProj!=-1){
sSrc=gaRoot[nProj].sToc;
if(sSrc)
return false;
}
}
else if(nItemType==2||nItemType==16||nItemType==8)
return false;
} while(nCIdx<num);
}
return true;
}
function writeBook(nIdx)
{
var sIcon=getBookImage(nIdx,true);
var sName=_textToHtml(getItemName(nIdx));
sIcon=_textToHtml_nonbsp(sIcon);
var nType=getItemType(nIdx);
var bLocal=(nType==1);
var bLocalProject=(nType!=4);
var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
if(bLocal)
{
if (!isBookEmpty(nIdx))
{
sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
sHTML+=" "+sName+"</a></nobr></p></div>";
var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
if(sURL!="")
addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
}
else
sHTML="";
}
else
{
sHTML+="stub></div>";
gbNeedFillStub=true;
setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
}
return sHTML;
}
function checkFillStub()
{
if(!gbLData)
{
if(gchunkRequestQueue.length()>0)
{
var cInfo=gchunkRequestQueue.deQueue();
if(cInfo)
{
fillStub(cInfo.nIdx,cInfo.bLocal);
return;
}
}
}
if(gbNeedFillStub)
{
gbNeedFillStub=false;
setTimeout("syncInit()",1);
}
}
function fillStub(nIdx,bLocalProject)
{
if(!gbLData)
{
gbLData=true;
var sObj=getElement(getPBId(nIdx));
if(sObj!=null)
{
tocExpandHelpSet(nIdx,bLocalProject);
gbNeedFillStub=false;
setTimeout("syncInit()",1);
}
else
setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
}
else
gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
}
function getBookId(nIdx){return "B_"+nIdx;}
function getItemId(nIdx){return "I_"+nIdx;}
function markBook(nIdx)
{
var obj=getElement(getItemId(nIdx));
if(obj==null)
obj=getElement(getBookId(nIdx));
if(gbNav6)
{
gobj=obj;
setTimeout("delayMarkObj();",1);
}
else
markObj(obj);
}
function delayMarkObj()
{
if(gobj)
{
markObj(gobj);
gobj=null;
}
}
function markObj(obj)
{
if(obj!=null)
{
HighLightElement(obj,gsABgColor,"transparent");
var sPath=calTocPath(obj);
if(gsCTPath!=sPath)
gsCTPath=sPath;
}
}
function markItem(nIdx)
{
var obj=getElement(getItemId(nIdx));
if(gbNav6)
{
gobj=obj;
setTimeout("delayMarkObj();",1);
}
else
markObj(getElement(getItemId(nIdx)));
}
function calTocPath(obj)
{
var sPath=getInnerText2(obj);
var pObj=getParentNode(obj);
do
{
while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
if(pObj!=null)
{
var nId=getIdByCBId(pObj.id);
var sObj=getElement(getPBId(nId));
if(sObj!=null)
{
var objs=getItemsByBook(sObj);
for(var i=0;i<objs.length;i++)
{
var sText=getInnerText2(objs[i]);
if(sText.length!=0)
{
sPath=sText+gsPathSplit+sPath;
break;
}
}
}
pObj=getParentNode(pObj);
}
}while(pObj!=null);
return sPath;
}
function writeAnItem(nIdx)
{
var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
var sIcon=getItemIcon(nIdx,0);
if(sIcon=="")
{
var nItemType=getItemType(nIdx);
if(nItemType&2)
sIcon=getItemImage(nIdx,false);
else
sIcon=getItemImage(nIdx,true);
}
sIcon=_textToHtml_nonbsp(sIcon);
var sName=_textToHtml(getItemName(nIdx));
var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
var sAltString="";
if(nItemType&2)
sAltString="Page";
else
sAltString="Remote Page";
if(sTarget!="")
sHTML+="target=\""+sTarget+"\" ";
sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\"> "+sName+"</a></nobr></p>";
return sHTML;
}
function writeBookItems(nIdx,num)
{
var sHTML="";
if(num>0){
var nCIdx=0;
do{
nCIdx++;
var i=nIdx+nCIdx;
var nItemType=getItemType(i);
if(nItemType==1||nItemType==4||nItemType==8){
sHTML+=writeBook(i);
nCIdx+=getItemContentsNum(i);
}
else if(nItemType==2||nItemType==16){
sHTML+=writeAnItem(i);
}
}
while(nCIdx<num);
}
return sHTML;
}
function tocExpandHelpSet(nIdx,bLocal)
{
checkBookItem(nIdx);
removeLoadingDiv();
if(!isHSLoad(nIdx))
{
setHSLoad(nIdx);
var sSrc="";
if(bLocal){
var oChunk=getChunk(nIdx);
if(oChunk)
{
goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
}
}
else{
sSrc=getRefURL(nIdx);
var nProj=getProject(sSrc);
if(nProj!=-1)
{
sSrc=gaRoot[nProj].sToc;
if(sSrc)
goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
else
goChunk=null;
}
else
goChunk=null;
}
if(goChunk)
{
PrepareLoading(nIdx);
gbToc=false;
loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
}
else
{
gbLData=false;
checkFillStub();
}
}
}
function getProject(sSrc)
{
for(var i=0;i<gaProj.length;i++)
if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
return i;
return -1;
}
function getPath(sPath)
{
if(sPath!="")
{
sPath=_replaceSlash(sPath);
var nPosFile=sPath.lastIndexOf("/");
sPath=sPath.substring(0,nPosFile+1);
}
return sPath;
}
function isSamePath(sPath1,sPath2)
{
return (sPath1.toLowerCase()==sPath2.toLowerCase());
}
function PrepareLoading(nIdx)
{
gnInsIdx=nIdx;
if(!gsTP)
{
var oObj=getElement(getPBId(gnInsIdx));
if(oObj)
oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
}
}
function writeLoadingDiv(nIdx)
{
return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
}
function getItemName(nIdx)
{
var oChunk=getChunk(nIdx);
if(oChunk)
return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
else
return null;
}
function getItemContentsNum(nIdx)
{
var oChunk=getChunk(nIdx);
if(oChunk)
return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
else
return null;
}
function getItemType(nIdx)
{
var oChunk=getChunk(nIdx);
if(oChunk)
return oChunk.aTocs[nIdx-oChunk.nMI].nType;
else
return 0;
}
function getItemURL(nIdx)
{
var oChunk=getChunk(nIdx);
if(oChunk)
{
var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
if(!(sPath==null||sPath==""))
{
return _getFullPath(oChunk.sPPath,sPath);
}
}
return "";
}
function getRefURL(nIdx)
{
var oChunk=getChunk(nIdx);
if(oChunk)
{
var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
if(!(sPath==null||sPath==""))
{
return _getFullPath(oChunk.sPPath,sPath)
}
}
return "";
}
function getTopicTarget(nIdx)
{
var oChunk=getChunk(nIdx);
if(oChunk)
{
if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
}
return "";
}
function getItemIcon(nIdx,nIconIdx)
{
var oChunk=getChunk(nIdx);
if(oChunk)
{
if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
{
var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
var nIndex=sIconRef.indexOf(";");
while(nIconIdx-->0&&nIndex!=-1)
{
sIconRef=sIconRef.substring(nIndex+1);
nIndex=sIconRef.indexOf(";");
}
if(nIconIdx<0)
{
if(nIndex!=-1)
sIconRef=sIconRef.substring(0,nIndex);
return _getFullPath(oChunk.sPPath,sIconRef)
}
}
}
return "";
}
function TocWriteClassStyle()
{
var sStyle="<STYLE TYPE='text/css'>\n";
if(gsBgImage)
sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
else
sStyle+="body {border-top:black 1px solid;}\n";
sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
sStyle+=".parent {margin-left:0pt;}\n";
sStyle+=".stub {margin-left:0pt;display:none}\n";
sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
sStyle+="A:active {background-color:"+gsABgColor+";}\n";
sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
sStyle+="</STYLE>";
document.write(sStyle);
}
function TocWriteFixedWidth(bBegin,nWidth)
{
if((gbIE4)&&(gbMac)&&(!gbIE5)){
if(bBegin)
document.write("<table width="+nWidth+" border=0><tr><td>");
else
document.write("</td></tr></table>");
}
}
function TocInitPage()
{
var tempColl=getItemsByBook(document.body);
if(tempColl.length>0)
tempColl[0].focus();
}
function getItemsFromObj(obj)
{
var aAnchor=new Array();
var tempColl=getChildrenByTag(obj,"P");
if(tempColl&&tempColl.length>0)
{
var anobr=new Array();
for(var i=0;i<tempColl.length;i++)
{
var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
if(tempNobr&&tempNobr.length>0)
for(var j=0;j<tempNobr.length;j++)
anobr[anobr.length]=tempNobr[j];
}
for(var s=0;s<anobr.length;s++)
{
var tempAnchor=getChildrenByTag(anobr[s],"A");
if(tempAnchor&&tempAnchor.length>0)
for(var u=0;u<tempAnchor.length;u++)
aAnchor[aAnchor.length]=tempAnchor[u];
}
}
return aAnchor;
}
function getItemsByBook(obj)
{
var aAnchor=new Array();
var aTAnchor=getItemsFromObj(obj);
for(var i=0;i<aTAnchor.length;i++)
aAnchor[aAnchor.length]=aTAnchor[i];
var tempBook=getChildrenByTag(obj,"DIV");
if(tempBook&&tempBook.length>0)
for(var j=0;j<tempBook.length;j++)
{
var aTAnchorDiv=getItemsFromObj(tempBook[j]);
for(var s=0;s<aTAnchorDiv.length;s++)
aAnchor[aAnchor.length]=aTAnchorDiv[s];
}
return aAnchor;
}
function ExpandIt(nId)
{
if(!gsTP)
ExpandIt2(nId,false);
}
function ExpandIt2(nId,bForceOpen)
{
var oC=TocExpand(nId,true,bForceOpen);
var nNewScroll=document.body.scrollTop;
if(oC.style.display=="block"){
var nTop=oC.offsetTop;
var nBottom=nTop+oC.offsetHeight;
if(document.body.scrollTop+document.body.clientHeight<nBottom){
nNewScroll=nBottom-document.body.clientHeight;
}
if(nBottom-nTop>document.body.clientHeight){
nNewScroll=nTop-20;
}
}
document.body.scrollTop=nNewScroll;
}
function TocExpand(nId,bChangeImg,bForceOpen)
{
var oDiv=getElement(getCBId(nId));
if(oDiv==null) return null;
var whichIm=document.images[getBId(nId)];
if((oDiv.style.display!="block")||bForceOpen){
oDiv.style.display="block";
if(bChangeImg){
var sPath=getPath(whichIm.src);
sPath=_getFullPath(sPath,getBookImage(nId,false));
whichIm.src=sPath;
}
}else{
oDiv.style.display="none";
if(bChangeImg){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -