📄 whthost.js
字号:
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+getClientHeight()<nBottom){
nNewScroll=nBottom-getClientHeight();
}
if(nBottom-nTop>getClientHeight()){
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){
var sPath=getPath(whichIm.src);
sPath=_getFullPath(sPath,getBookImage(nId,true));
whichIm.src=sPath;
}
if(gbMac&&gbIE5){
this.parent.document.getElementById("tocIFrame").style.width="101%";
this.parent.document.getElementById("tocIFrame").style.width="100%";
}
}
return oDiv;
}
function getChunkId(n)
{
var nCan=-1;
for(var i=0;i<gaTocs.length;i++)
if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
{
if(nCan==-1)
nCan=i;
else
if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
nCan=i;
}
if(nCan!=-1)
return nCan;
else
return -1;
}
function getChunk(n)
{
if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
gaTocs[gnCC+1].nMI>n))
{
return gaTocs[gnCC];
}
else{
gnCC=getChunkId(n);
if(gnCC!=-1)
return gaTocs[gnCC];
else
return null;
}
}
function getBookImage(nIdx,bClosed)
{
var nIdx=bClosed?0:1;
var sIcon=getItemIcon(nIdx,nIdx);
if(sIcon=="")
if(bClosed)
sIcon=giBookClose;
else
sIcon=giBookOpen;
return _getFullPath(gaProj[0].sPPath,sIcon);
}
function getItemImage(nIdx,bRemote)
{
var sIcon=getItemIcon(nIdx,0);
if(sIcon=="")
if(bRemote)
sIcon=giURLItem;
else
sIcon=giBookItem;
return _getFullPath(gaProj[0].sPPath,sIcon);
}
function getInnerText2(obj)
{
var sText=getInnerText(obj);
if(sText.length>0&&!gbOpera7)
sText=sText.substring(1);
return sText;
}
function expandToc(oObj,sRest,aIdList)
{
var len=aIdList.length;
var nPos=sRest.indexOf(gsPathSplit);
if(nPos!=-1)
{
sPart=sRest.substring(0,nPos);
sRest=sRest.substring(nPos+1);
}
else
{
sPart=sRest;
var aTagAs=getItemsByBook(oObj);
for(var s=0;s<aTagAs.length;s++)
{
var sText=getInnerText2(aTagAs[s]);
if(sText==sPart)
{
aIdList[len]=aTagAs[s];
return 1;
}
}
return 0;
}
var aChildren=getChildrenByTag(oObj,"DIV");
for(var i=0;i<aChildren.length;i++)
{
var sPId=aChildren[i].id;
if(!isPBId(sPId))
continue;
var sText=getInnerText2(aChildren[i]);
sText = sText.replace("\n", "");
if(sText!=sPart)
continue;
aIdList[len]=getIdByPBId(sPId);
var sCId=getCBId(aIdList[len]);
var oCObj=getElement(sCId);
if(oCObj)
{
if(oCObj.innerHTML=="")
{
var obj=getItemsByBook(aChildren[i]);
if(obj.length>0)
{
if(gbNav6 || gbSafari3)
{
if(gbNav6 )
{
var sCommand=obj[0].getAttribute("onClick");
var nCommand=sCommand.indexOf(";");
sCommand=sCommand.substring(0,nCommand);
}
else if(gbSafari3)
{
var sCommand=obj[0].getAttribute("onClick");
var nCommand1=sCommand.indexOf(";");
var nCommand2=sCommand.indexOf(";", nCommand1+1);
sCommand=sCommand.substring(nCommand1+1, nCommand2);
}
var indx1 = sCommand.indexOf("(");
var indx2 = sCommand.indexOf(",", indx1);
var arg1 = sCommand.substring(indx1+1, indx2);
indx1 = indx2;
indx2 = sCommand.indexOf(")", indx1);
var arg2 = sCommand.substring(indx1+1, indx2);
n1 = parseInt(arg1);
n2 = parseInt(arg2);
insertBookItems(n1, n2);
}
else
obj[0].click();
}
return -1;
}
var nRet=expandToc(oCObj,sRest,aIdList);
if(nRet)
return nRet;
}
}
aIdList.length=len;
return 0;
}
function getIdByPBId(sPId)
{
return parseInt(sPId.substring(2,sPId.length-1));
}
function getIdByCBId(sCId)
{
return parseInt(sCId.substring(2,sCId.length-1));
}
function isPBId(sId)
{
return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
}
function isCBId(sId)
{
return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
}
function getBId(nIdx)
{
return "B_"+nIdx;
}
function getPBId(nIdx)
{
return getBId(nIdx)+"P";
}
function getCBId(nIdx)
{
return getBId(nIdx)+"C";
}
function getClosestTocPath(aPaths)
{
var nMaxSimilarity=0;
var nThatIndex=-1;
var sPath=null;
if(aPaths.length==0) return sPath;
for(var i=0;i<aPaths.length;i++)
{
var nSimilarity=comparePath(gsCTPath,aPaths[i]);
if(nSimilarity>nMaxSimilarity)
{
nMaxSimilarity=nSimilarity;
nThatIndex=i;
}
}
if(nThatIndex!=-1)
sPath=aPaths[nThatIndex];
else
sPath=aPaths[0];
return sPath;
}
function comparePath(sPath1,sPath2)
{
var nMaxSimilarity=0;
var nStartPos1=0;
var nPos1=-1;
var nStartPos2=0;
var nPos2=-1;
do{
var sCheck1=null;
var sCheck2=null;
nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
if(nPos1!=-1)
{
sCheck1=sPath1.substring(nStartPos1,nPos1);
nStartPos1=nPos1+1;
}
else
{
sCheck1=sPath1.substring(nStartPos1);
nStartPos1=-1;
}
nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
if(nPos1!=-1)
{
sCheck2=sPath2.substring(nStartPos2,nPos2);
nStartPos2=nPos2+1;
}
else
{
sCheck2=sPath2.substring(nStartPos2);
nStartPos2=-1;
}
if(sCheck1==sCheck2)
nMaxSimilarity++;
else
break;
}while(nStartPos1!=-1&&nStartPos2!=-1);
return nMaxSimilarity;
}
function getTocPaths(oTopicParam)
{
var aRelTocPaths=oTopicParam.aPaths;
var aPaths=new Array();
for(var i=0;i<gaProj.length;i++)
if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -