📄 whfhost.js
字号:
// WebHelp 5.10.003
var gsSK2=null;
var gsSK=null;
var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";
var gnCLF=0;
var gsHelpCannotSearch="Cannot search for that phrase.";
var gsNoTopics="No Topics Found.";
var gsLoadingDivID="LoadingDiv";
var gsLoadingMsg="Loading data, please wait...";
var gsSearchMsg="Searching...";
var gsResultDivID="ResultDiv";
var gaaFCD=new Array();
var gaaFTCD=new Array();
var goCF=null;
var goCTF=null;
var gaTI=null;
var gnCurrentOp=0;
var gbNot=false;
var gbReady=false;
var gnLoadFts=1;
var gnCacheLimits=5;
var gaCCD=new Array();
var gbXML=false;
var gaData=new Array();
var gsBgColor="#ffffff";
var gsBgImage="";
var gsMargin="0pt";
var gsIndent="0pt";
var gsCheckKey=null;
var gnIndexNum=0;
var gaFtsContentsCon=null;
var gaTopicCheckInfo=null;
var gnTopicCheck=0;
var goFont=null;
var goErrFont=null;
var goHoverFont=null;
var gsABgColor="#cccccc";
var gbWhFHost=false;
var gbFirst=false;
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=="Error")
goErrFont=vFont;
else if(sType=="Hover")
goHoverFont=vFont;
}
function setActiveBgColor(sBgColor)
{
gsABgColor=sBgColor;
}
function setMargin(sMargin)
{
gsMargin=sMargin;
}
function setIndent(sIndent)
{
gsIndent=sIndent;
}
function updateCache(oCF)
{
var len=gaCCD.length;
if(len<gnCacheLimits*gnCLF)
gaCCD[len]=oCF;
else{
gaCCD[0].aTopics=null;
gaCCD[0].aFtsKeys=null;
removeItemFromArray(gaCCD,0);
gaCCD[len-1]=oCF;
}
}
function addFtsInfo(sPPath,sDPath,sFtsFile)
{
gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);
}
function onLoadXMLError()
{
if(gnLoadFts==1)
{
var aFCD=new Array();
var aFTCD=new Array();
ftsReady(aFCD,aFTCD);
}
else if(gnLoadFts==3)
{
var aTopics=new Array();
putFtsTData(aTopics);
}
else if(gnLoadFts==2)
{
putFtsWData(aFtsContents);
var aFtsContents=new Array();
}
}
function putDataXML(xmlDoc,sDocPath)
{
if(gnLoadFts==1)
{
var node=xmlDoc.lastChild;
if(node)
{
var oChild=node.firstChild;
var aFCD=new Array();
var aFTCD=new Array();
while(oChild)
{
if(oChild.nodeName=="chunkinfo")
{
var sURL=oChild.getAttribute("url");
var sFirst=oChild.getAttribute("first");
var sLast=oChild.getAttribute("last");
if(sURL&&sFirst&&sLast)
{
item=new Object();
item.sStartKey=sFirst;
item.sEndKey=sLast;
item.sFileName=sURL;
aFCD[aFCD.length]=item;
}
}
else if(oChild.nodeName=="tchunkinfo")
{
var sURL=oChild.getAttribute("url");
var nB=parseInt(oChild.getAttribute("first"));
var nE=parseInt(oChild.getAttribute("last"));
if(sURL&&sFirst&&sLast)
{
item=new Object();
item.nBegin=nB;
item.nEnd=nE;
item.sFileName=sURL;
aFTCD[aFTCD.length]=item;
}
}
oChild=oChild.nextSibling;
}
ftsReady(aFCD,aFTCD);
}
}
else if(gnLoadFts==3)
{
var node=xmlDoc.lastChild;
if(node)
{
var oChild=node.firstChild;
var aTopics=new Array();
while(oChild)
{
if(oChild.nodeName=="topic")
{
var name=oChild.getAttribute("name");
var sURL=oChild.getAttribute("url");
if(name&&name.length>0&&sURL)
{
var topic=new Object();
topic.sTopicTitle=name;
topic.sTopicURL=sURL;
aTopics[aTopics.length]=topic;
}
}
oChild=oChild.nextSibling;
}
putFtsTData(aTopics);
}
}
else if(gnLoadFts==2)
{
var node=xmlDoc.lastChild;
if(node)
{
var oChild=node.firstChild;
var aFtsContents=new Array();
while(oChild)
{
if(oChild.nodeName=="key")
{
var name=oChild.getAttribute("name");
if(name&&name.length>0)
{
var item=new Object();
item.sItemName=name;
aFtsContents[aFtsContents.length]=item;
var oChildChild=oChild.firstChild;
while(oChildChild)
{
if(oChildChild.nodeName=="#text")
{
var sIDs=oChildChild.nodeValue;
if(sIDs)
{
var nBPos=0;
do
{
var nPos=sIDs.indexOf(",",nBPos);
var sID=null;
if(nPos!=-1)
sID=sIDs.substring(nBPos,nPos);
else
sID=sIDs.substring(nBPos);
if(sID)
{
var id=parseInt(sID);
if(!isNaN(id))
{
if(!item.aTopics)
item.aTopics=new Array();
item.aTopics[item.aTopics.length]=id;
}
}
nBPos=nPos+1;
}while(nBPos!=0&&nBPos<sIDs.length);
}
}
oChildChild=oChildChild.nextSibling;
}
}
}
oChild=oChild.nextSibling;
}
putFtsWData(aFtsContents);
}
}
}
function ftsInfo(sPPath,sDPath,sFtsFile)
{
this.sPPath=sPPath;
this.sDPath=sDPath;
this.sFtsFile=sFtsFile;
}
function window_OnLoad()
{
if(gsBgImage&&gsBgImage.length>0)
{
document.body.background=gsBgImage;
}
if(gsBgColor&&gsBgColor.length>0)
{
document.body.bgColor=gsBgColor;
}
writeResultDiv();
loadFts();
var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
SendMessage(oMsg);
}
function writeResultDiv()
{
var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";
document.body.insertAdjacentHTML("beforeEnd",sHTML);
}
function loadFts()
{
if(!gbReady)
{
var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
if(SendMessage(oResMsg)&&oResMsg.oParam)
{
gbReady=true;
var oProj=oResMsg.oParam;
var aProj=oProj.aProj;
gbXML=oProj.bXML;
if(aProj.length>0)
{
var sLangId=aProj[0].sLangId;
for(var i=0;i<aProj.length;i++)
{
if(aProj[i].sFts&&aProj[i].sLangId==sLangId)
{
addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);
}
}
}
loadFD();
}
}
}
function loadFD()
{
if(gnCLF<gaData.length)
{
gnLoadFts=1;
loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);
}
else
{
var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);
if (SendMessage(oMsg))
{
if (oMsg.oParam)
{
gsSK=oMsg.oParam.toLowerCase();
findFTSKey();
}
}
RegisterListener2(this, WH_MSG_SEARCHFTSKEY);
}
}
function loadData2(sFile)
{
if(gbXML)
loadDataXML(sFile);
else
loadData(sFile);
}
function findFTSKey()
{
gaTI=new Array();
gnCurrentOp=1;
gbNot=false;
displayMsg(gsSearchMsg);
if(gsSK!="")
{
gbFirst=true;
findOneKey();
}
}
function findOneKey()
{
if(gsSK && gsSK!="")
{
var sInput=gsSK;
var sCW="";
var nS=-1;
var nSep=-1;
for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){
var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));
if((nFound!=-1)&&((nS==-1)||(nFound<nS))){
nS=nFound;
nSep=nChar;
}
}
if(nS==-1){
sCW=sInput;
sInput="";
}else{
sCW=sInput.substring(0,nS);
sInput=sInput.substring(nS+1);
}
gsSK=sInput;
if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){
gnCurrentOp=0;
gbNot=false;
}else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){
gnCurrentOp=1;
gbNot=false;
}else if((sCW=="not")||
((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){
gbNot=!gbNot;
}else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){
var sCurrentStem=GetStem(sCW);
gsCW=sCurrentStem;
ftsFindKeyword();
return;
}
findOneKey();
}
else{
displayTopics();
checkAgain();
}
}
function checkAgain()
{
gsCheckKey = "";
gnIndexNum = 0;
gsSK=gsSK2;
gsSK2=null;
if(gsSK!=null)
setTimeout("findFTSKey();",1);
}
function displayTopics()
{
var sHTML="";
var sLine="";
for(var i=0;i<gaTI.length;i++){
sLine+="<dt><nobr><a href='"+gaTI[i].sTopicURL+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";
if(i>>4<<4==i)
{
sHTML+=sLine;
sLine="";
}
}
if(sLine.length>0)
sHTML+=sLine;
if(sHTML.length==0)
sHTML="<P>"+gsNoTopics+"</P>"
else
sHTML="<dl>"+sHTML+"</dl>";
var resultDiv=getElement(gsResultDivID);
if(resultDiv)
resultDiv.innerHTML=sHTML;
}
function displayMsg(sErrorMsg)
{
var sHTML="<P>"+sErrorMsg+"</P>";
var resultDiv=getElement(gsResultDivID);
if(resultDiv)
resultDiv.innerHTML=sHTML;
}
function ftsFindKeyword()
{
var sKey=gsCW;
var bNeedLoad=false;
var aFtsContentsCon=null;
var s=0;
if(sKey==null) return;
if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)
{
aFtsContentsCon=new Array();
gnCheck=0;
gsCheckKey=sKey;
gnTopicCheck=0;
gaTopicCheckInfo=null;
}
else{
s=gnIndexNum;
aFtsContentsCon=gaFtsContentsCon;
}
for(var i=gnCheck;i<gaaFCD.length;i++)
{
var oCF=getChunkedFts(i,sKey);
if(oCF)
{
if(!oCF.aFtsKeys&&oCF.sFileName!=null)
{
bNeedLoad=true;
oCF.nProjId=i;
goCF=oCF;
gnIndexNum=s;
gnCheck=i;
gaFtsContentsCon=aFtsContentsCon;
gnLoadFts=2;
beginLoading();
loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -