⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 whfhost.js

📁 an installation help file
💻 JS
📖 第 1 页 / 共 2 页
字号:
//	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 + -