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

SNMP编程

开发平台:

C/C++

  1. window.whname="wh_stub";
  2. function getframehandle(frames,framename)
  3. {
  4. var frame=null;
  5. if(null==frames) return null;
  6. for(var i=0;i<frames.length;i++)
  7. {
  8. if(typeof(frames[i].name)!="unknown")
  9. {
  10. if(frames[i].name==framename)
  11. return frames[i];
  12. if(frames[i].frames.length>0)
  13. frame=getframehandle(frames[i].frames,framename);
  14. if(null!=frame)
  15. return frame;
  16. }
  17. }
  18. return frame;
  19. }
  20. function AddToArray(arr,obj)
  21. {
  22. var bFound=false;
  23. for(var i=0;i<arr.length;i++){
  24. if(arr[i]==obj){
  25. bFound=true;
  26. break;
  27. }
  28. else if(arr[i]==null){
  29. break;
  30. }
  31. }
  32. if(!bFound) arr[i]=obj;
  33. }
  34. var gArrayRegistedMessage=new Array();
  35. var gArrayCompoentsArray=new Array();
  36. function GetComponentsArray(nMessageId)
  37. {
  38. var len=gArrayRegistedMessage.length;
  39. for(var i=0;i<len;i++)
  40. {
  41. if(gArrayRegistedMessage[i]==nMessageId){
  42. if(gArrayCompoentsArray.length>i)
  43. return gArrayCompoentsArray[i];
  44. else
  45. return null;
  46. }
  47. }
  48. return null;
  49. }
  50. function CreateComponentsArray(nMessageId)
  51. {
  52. var len=gArrayRegistedMessage.length;
  53. gArrayRegistedMessage[len]=nMessageId;
  54. gArrayCompoentsArray[len]=new Array();
  55. return gArrayCompoentsArray[len];
  56. }
  57. function listener(sName,oWindow)
  58. {
  59. this.sName=sName;
  60. this.oWindow=oWindow;
  61. }
  62. function RegisterListener(windowName,nMessageId)
  63. {
  64. var arrayComponents=GetComponentsArray(nMessageId);
  65. if(arrayComponents==null)
  66. arrayComponents=CreateComponentsArray(nMessageId);
  67. if(arrayComponents!=null)
  68. {
  69. for (var i=0;i<arrayComponents.length;i++)
  70. {
  71. if (arrayComponents[i].sName == windowName)
  72. return false;
  73. }
  74. var oListener=new listener(windowName,null);
  75. AddToArray(arrayComponents,oListener);
  76. return true;
  77. }
  78. else
  79. return false;
  80. }
  81. function RegisterListener2(oWindow,nMessageId)
  82. {
  83. var arrayComponents=GetComponentsArray(nMessageId);
  84. if(arrayComponents==null)
  85. arrayComponents=CreateComponentsArray(nMessageId);
  86. if(arrayComponents!=null)
  87. {
  88. var oListener=new listener("",oWindow);
  89. AddToArray(arrayComponents,oListener);
  90. return true;
  91. }
  92. else
  93. return false;
  94. }
  95. function UnRegisterListener2(oWindow,nMessageId)
  96. {
  97. var arrayComponents=GetComponentsArray(nMessageId);
  98. if(arrayComponents!=null)
  99. {
  100. for(var i=0;i<arrayComponents.length;i++)
  101. {
  102. if(arrayComponents[i].oWindow==oWindow)
  103. {
  104. removeItemFromArray(arrayComponents,i);
  105. return true;
  106. }
  107. }
  108. }
  109. else
  110. return false;
  111. }
  112. function SendMessage(oMessage)
  113. {
  114. var bDelivered=false;
  115. var arrayComponents=GetComponentsArray(oMessage.nMessageId);
  116. if(arrayComponents!=null&&arrayComponents.length>0){
  117. for(var i=0;i<arrayComponents.length;i++)
  118. {
  119. if(null!=arrayComponents[i])
  120. {
  121. var pFrame;
  122. if(arrayComponents[i].oWindow==null)
  123. pFrame=getframehandle(frames,arrayComponents[i].sName);
  124. else
  125. pFrame=arrayComponents[i].oWindow;
  126. if(null!=pFrame)
  127. {
  128. if(pFrame.onSendMessageX)
  129. {
  130. bDelivered=true;
  131. if(!pFrame.onSendMessageX(oMessage))
  132. break;
  133. }
  134. if(pFrame.onSendMessage)
  135. {
  136. bDelivered=true;
  137. if(!pFrame.onSendMessage(oMessage))
  138. break;
  139. }
  140. }
  141. }
  142. }
  143. }
  144. return bDelivered;
  145. }