whphost.js
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:11k
源码类别:

SNMP编程

开发平台:

C/C++

  1. var gaProj=new Array();
  2. var gnChecked=0;
  3. var gsProjName="";
  4. var gbReady=false;
  5. var goMan=null;
  6. var gbXML=false;
  7. var gsFirstPane="";
  8. var gServerEnabled=false;
  9. var gsPath="";
  10. var gbWhPHost=false;
  11. var goDiv = null;
  12. var gsHTML = "";
  13. if (navigator.currentNavPen)
  14. gsFirstPane = navigator.currentNavPen;
  15. function delayLoad()
  16. {
  17. if (goDiv&&gsHTML)
  18. {
  19. goDiv.innerHTML=gsHTML;
  20. goDiv=null;
  21. gsHTML="";
  22. }
  23. }
  24. function whCom(sName,sComFile)
  25. {
  26. this.msName=sName;
  27. this.msDivId=sName+"Div";
  28. this.msIFrameId=sName+"IFrame";
  29. this.msComFile=sComFile;
  30. this.mbloaded=false;
  31. this.mbShow=false;
  32. this.show=function(bShow)
  33. {
  34. if(this.mbShow!=bShow)
  35. {
  36. if(bShow&&!this.mbloaded)
  37. {
  38. this.load();
  39. }
  40. var oDiv=getElement(this.msDivId);
  41. if(oDiv)
  42. {
  43. if(gbIE55||(gbIE5&&gbMac))
  44. {
  45. var oIframe=getElement(this.msIFrameId);
  46. if(oIframe)
  47. {
  48. if(bShow)
  49. {
  50. oDiv.style.zIndex=3;
  51. if(oIframe!=null)
  52. {
  53. oIframe.style.zIndex=3;
  54. if (!gbIE55)
  55. oIframe.style.visibility="visible";
  56. }
  57. }
  58. else
  59. {
  60. oDiv.style.zIndex=2;
  61. if(oIframe!=null)
  62. {
  63. oIframe.style.zIndex=2;
  64. if (!gbIE55)
  65. oIframe.style.visibility="hidden";
  66. }
  67. }
  68. }
  69. }
  70. if (!gbIE55)
  71. oDiv.style.visibility=(bShow==true)?'visible':'hidden';
  72. this.mbShow=bShow;
  73. }
  74. }
  75. }
  76. this.load=function()
  77. {
  78. if(!this.mbloaded)
  79. {
  80. if(this.msComFile.length>0){
  81. var strFile= _getFullPath(getPath(), this.msComFile);
  82. var oDiv=getElement(this.msDivId);
  83. if(oDiv){
  84. if(gbIE4){
  85. var nIFrameHeight=oDiv.style.pixelHeight;
  86. var nIFrameWidth=oDiv.style.pixelWidth;
  87. var sHTML="<IFRAME ID="+this.msIFrameId+" title="" + this.msName + "" SRC=""+strFile+"" BORDER=0 FRAMEBORDER=no STYLE="width:";
  88. if(gbMac){
  89. sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;"></IFRAME>";
  90. }else{
  91. sHTML+="100%; height:100%;"></IFRAME>";
  92. }
  93. oDiv.innerHTML=sHTML;
  94. }else if(gbNav6){
  95. gsHTML="<IFRAME ID="+this.msIFrameId+" title="" + this.msName + "" SRC=""+strFile+"" BORDER=0 FRAMEBORDER=no STYLE="width:100%;border:0;height:";
  96. gsHTML+="100%;"></IFRAME>";
  97. goDiv = oDiv;
  98. setTimeout("delayLoad()", 100);
  99. }
  100. this.mbloaded=true;
  101. }
  102. }
  103. }
  104. }
  105. this.unload=function()
  106. {
  107. var oDiv=getElement(this.msDivId);
  108. if(oDiv)
  109. oDiv.innerHTML="";
  110. }
  111. this.getDivHTML=function()
  112. {
  113. var sHTML="";
  114. if(gbMac&&gbIE4)
  115. sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE="position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;">";
  116. else
  117. if (gbIE5)
  118. sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE="position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;">";
  119. else
  120. sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE="position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden">";
  121. sHTML+="</DIV>";
  122. return sHTML;
  123. }
  124. }  
  125. function whComMan()
  126. {
  127. this.sName="";
  128. this.maCom=new Array();
  129. this.addCom=function(sName,sComFile)
  130. {
  131. var owhCom=new whCom(sName,sComFile);
  132. this.maCom[this.maCom.length]=owhCom;
  133. }
  134. this.init=function()
  135. {
  136. var sHTML="";
  137. for(var i=0;i<this.maCom.length;i++)
  138. {
  139. sHTML+=this.maCom[i].getDivHTML();
  140. }
  141. document.body.insertAdjacentHTML("beforeEnd",sHTML);
  142. }
  143. this.showById=function(nId)
  144. {
  145. for(var s=0;s<this.maCom.length;s++)
  146. {
  147. if(s!==nId)
  148. this.maCom[s].show(false);
  149. }
  150. this.maCom[nId].show(true);
  151. }
  152. this.show=function(sName)
  153. {
  154. navigator.currentNavPen = sName;
  155. var bFound=false;
  156. for(var i=0;i<this.maCom.length;i++)
  157. {
  158. if(sName==this.maCom[i].msName)
  159. {
  160. bFound=true;
  161. break;
  162. }
  163. }
  164. if(bFound)
  165. {
  166. this.showById(i);
  167. this.sName=sName;
  168. }
  169. }
  170. this.unload=function()
  171. {
  172. for(var i=0;i<this.maCom.length;i++)
  173. {
  174. this.maCom[i].unload();
  175. }
  176. }
  177. this.getCurrent=function()
  178. {
  179. return this.sName;
  180. }
  181. }
  182. function getPath()
  183. {
  184. if(gsPath=="")
  185. {
  186. gsPath=location.href;
  187. gsPath=_replaceSlash(gsPath);
  188. var nPosFile=gsPath.lastIndexOf("/");
  189. gsPath=gsPath.substring(0,nPosFile+1);
  190. }
  191. return gsPath;
  192. }
  193. goMan=new whComMan();
  194. function addPane(sName,sFileName)
  195. {
  196. goMan.addCom(sName,sFileName);
  197. }
  198. function setShowPane(sName, bForce)
  199. {
  200. if ((gsFirstPane == "") || bForce)
  201. gsFirstPane=sName;
  202. }
  203. function window_OnLoad()
  204. {
  205. if(gsProjName!="")
  206. {
  207. goMan.init();
  208. if(gsFirstPane!="")
  209. goMan.show(gsFirstPane);
  210. else
  211. goMan.showById(0);
  212. loadData2(gsProjName);
  213. }
  214. else if (gServerEnabled)
  215. {
  216. goMan.init();
  217. if(gsFirstPane!="")
  218. goMan.show(gsFirstPane);
  219. else
  220. goMan.showById(0);
  221. }
  222. }
  223. function setServerEnabled()
  224. {
  225. gServerEnabled = true;
  226. }
  227. function loadData2(strFile)
  228. {
  229. if(gbXML)
  230. loadDataXML(strFile);
  231. else
  232. loadData(strFile);
  233. }
  234. function addProject(bPreferXML,sXMLName,sHTMLName)
  235. {
  236. var bLoadXML=bPreferXML;
  237. if(!gbIE4&&!gbNav6)
  238. return;
  239. if(gbIE4&&!gbIE5)
  240. bLoadXML=false;
  241. if (gbIE5&&!gbMac)
  242. bLoadXML=true;
  243. if(gbIE55||gbNav6)
  244. bLoadXML=true;
  245. if(bLoadXML)
  246. addProjectXML(sXMLName);
  247. else
  248. addProjectHTML(sHTMLName);
  249. }
  250. function addProjectHTML(sName)
  251. {
  252. gbXML=false;
  253. gsProjName=sName;
  254. }
  255. function addProjectXML(sName)
  256. {
  257. gbXML=true;
  258. gsProjName=sName;
  259. }
  260. function window_MyBunload()
  261. {
  262. goMan.unload();
  263. window_BUnload();
  264. }
  265. function putDataXML(xmlDoc,sdocPath)
  266. {
  267. if(xmlDoc!=null)
  268. {
  269. var projectNode=xmlDoc.getElementsByTagName("project")[0];
  270. if(projectNode)
  271. {
  272. var aRProj=new Array();
  273. aRProj[0]=new Object();
  274. aRProj[0].sPPath=_getPath(sdocPath);
  275. var sLangId=projectNode.getAttribute("langid");
  276. if(sLangId)
  277. {
  278. aRProj[0].sLangId=sLangId;
  279. }
  280. var sDPath=projectNode.getAttribute("datapath");
  281. if(sDPath)
  282. {
  283. if(sDPath.lastIndexOf("/")!=sDPath.length-1)
  284. sDPath+="/";
  285. aRProj[0].sDPath=sDPath;
  286. }
  287. else
  288. aRProj[0].sDPath="";
  289. aRProj[0].sToc=projectNode.getAttribute("toc");
  290. aRProj[0].sIdx=projectNode.getAttribute("index");
  291. aRProj[0].sFts=projectNode.getAttribute("fts");
  292. aRProj[0].sGlo=projectNode.getAttribute("glossary");
  293. var RmtProject=projectNode.getElementsByTagName("remote");
  294. var nCount=1;
  295. for (var i=0;i<RmtProject.length;i++)
  296. {
  297. var sURL=RmtProject[i].getAttribute("url");
  298. if(sURL)
  299. {
  300. aRProj[nCount]=new Object();
  301. aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);
  302. }
  303. }
  304. putProjectInfo(aRProj);
  305. }
  306. else
  307. {
  308. // on Netscape 6.0 under some situation the xml file cannot be loaded.
  309. // so we use pure html instead.
  310. setTimeout("redirectToList();",100);
  311. }
  312. }
  313. }
  314. function redirectToList()
  315. {
  316. if(gbReDirectThis)
  317. document.location=gsNavReDirect;
  318. else
  319. parent.document.location=gsNavReDirect;
  320. }
  321. function putProjectInfo(aRProj)
  322. {
  323. if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))
  324. {
  325. if(gnChecked!=0)
  326. {
  327. if(aRProj[0].sLangId!=gaProj[0].sLangId)
  328. alert("The project: "+aRProj[0].sPPath+" is using a different language to the main project, which will cause the index and full text search functionality to be disabled for this remote project.");
  329. }
  330. gaProj[gnChecked]=aRProj[0];
  331. for(var i=1;i<aRProj.length;i++)
  332. {
  333. var bFound=false;
  334. for(var j=0;j<gaProj.length;j++)
  335. {
  336. if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))
  337. {
  338. bFound=true;
  339. break;
  340. }
  341. }
  342. if(!bFound)
  343. {
  344. gaProj[gaProj.length]=aRProj[i];
  345. }
  346. }
  347. gnChecked++;
  348. checkRemoteProject();
  349. }
  350. else
  351. alert("Could not load correctly, please click Refresh.");
  352. }
  353. function isSamePath(sPath1,sPath2)
  354. {
  355. return (sPath1.toLowerCase()==sPath2.toLowerCase());
  356. }
  357. function checkRemoteProject()
  358. {
  359. if(gaProj.length!=gnChecked)
  360. {
  361. setTimeout("cancelProj("+gnChecked+");",10000);
  362. loadData2(gaProj[gnChecked].sPPath+gsProjName);
  363. }
  364. else{
  365. var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);
  366. gbReady=true;
  367. SendMessage(oMsg);
  368. }
  369. }
  370. function cancelProj(i)
  371. {
  372. if(i==gnChecked)
  373. {
  374. alert("Can't load project::"+gaProj[i].sPPath);
  375. gnChecked++;
  376. checkRemoteProject();
  377. }
  378. }
  379. function window_resize()
  380. {
  381. for(var i=0;i<goMan.maCom.length;i++)
  382. {
  383. var oFrame=getElement(goMan.maCom[i].msIFrameId);
  384. if(oFrame)
  385. {
  386. oFrame.style.height=document.body.clientHeight;
  387. oFrame.style.width=document.body.clientWidth;
  388. }
  389. }
  390. window_resize2();
  391. }
  392. function window_resize2()
  393. {
  394. if(document.body)
  395. {
  396. if(document.body.clientWidth > 1 && document.body.clientHeight>1)
  397. {
  398. var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);
  399. SendMessage(oMsg);
  400. }
  401. }
  402. }
  403. function window_unload()
  404. {
  405. UnRegisterListener2(this,WH_MSG_GETPROJINFO);
  406. UnRegisterListener2(this,WH_MSG_SHOWTOC);
  407. UnRegisterListener2(this,WH_MSG_SHOWIDX);
  408. UnRegisterListener2(this,WH_MSG_SHOWFTS);
  409. UnRegisterListener2(this,WH_MSG_SHOWGLO);
  410. UnRegisterListener2(this,WH_MSG_GETPANEINFO);
  411. }
  412. function onSendMessage(oMsg)
  413. {
  414. if(oMsg)
  415. {
  416. var nMsgId=oMsg.nMessageId;
  417. if(nMsgId==WH_MSG_GETPROJINFO)
  418. {
  419. if(gbReady)
  420. {
  421. var oProj=new Object();
  422. oProj.aProj=gaProj;
  423. oProj.bXML=gbXML;
  424. oMsg.oParam=oProj;
  425. }
  426. else
  427. return false;
  428. }
  429. else if(nMsgId==WH_MSG_SHOWTOC)
  430. {
  431. if(goMan)
  432. goMan.show("toc");
  433. var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
  434. SendMessage(onMsg);
  435. onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
  436. SendMessage(onMsg);
  437. }
  438. else if(nMsgId==WH_MSG_SHOWIDX)
  439. {
  440. if(goMan)
  441. goMan.show("idx");
  442. var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
  443. SendMessage(onMsg);
  444. onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
  445. SendMessage(onMsg);
  446. }
  447. else if(nMsgId==WH_MSG_SHOWFTS)
  448. {
  449. if(goMan)
  450. goMan.show("fts");
  451. var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
  452. SendMessage(onMsg);
  453. onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
  454. SendMessage(onMsg);
  455. }
  456. else if(nMsgId==WH_MSG_SHOWGLO)
  457. {
  458. if(goMan)
  459. goMan.show("glo");
  460. var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
  461. SendMessage(onMsg);
  462. onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
  463. SendMessage(onMsg);
  464. }
  465. else if(nMsgId==WH_MSG_GETPANEINFO)
  466. {
  467. oMsg.oParam=goMan.getCurrent();
  468. return false;
  469. }
  470. }
  471. return true;
  472. }
  473. if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
  474. {
  475. RegisterListener2(this,WH_MSG_GETPROJINFO);
  476. RegisterListener2(this,WH_MSG_SHOWTOC);
  477. RegisterListener2(this,WH_MSG_SHOWIDX);
  478. RegisterListener2(this,WH_MSG_SHOWFTS);
  479. RegisterListener2(this,WH_MSG_SHOWGLO);
  480. RegisterListener2(this,WH_MSG_GETPANEINFO);
  481. if((gbMac&&gbIE4)||(gbSunOS&&gbIE5))
  482. {
  483. window.onresize=window_resize;
  484. }
  485. else if(gbIE4)
  486. {
  487. window.onresize=window_resize2;
  488. }
  489. window.onload=window_OnLoad;
  490. window.onbeforeunload=window_MyBunload;
  491. window.onunload=window_unload;
  492. gbWhPHost=true;
  493. }
  494. else
  495. document.location.reload();