whstub.js
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:3k
- window.whname="wh_stub";
- function getframehandle(frames,framename)
- {
- var frame=null;
- if(null==frames) return null;
- for(var i=0;i<frames.length;i++)
- {
- if(typeof(frames[i].name)!="unknown")
- {
- if(frames[i].name==framename)
- return frames[i];
- if(frames[i].frames.length>0)
- frame=getframehandle(frames[i].frames,framename);
- if(null!=frame)
- return frame;
- }
- }
- return frame;
- }
- function AddToArray(arr,obj)
- {
- var bFound=false;
- for(var i=0;i<arr.length;i++){
- if(arr[i]==obj){
- bFound=true;
- break;
- }
- else if(arr[i]==null){
- break;
- }
- }
- if(!bFound) arr[i]=obj;
- }
- var gArrayRegistedMessage=new Array();
- var gArrayCompoentsArray=new Array();
- function GetComponentsArray(nMessageId)
- {
- var len=gArrayRegistedMessage.length;
- for(var i=0;i<len;i++)
- {
- if(gArrayRegistedMessage[i]==nMessageId){
- if(gArrayCompoentsArray.length>i)
- return gArrayCompoentsArray[i];
- else
- return null;
- }
- }
- return null;
- }
- function CreateComponentsArray(nMessageId)
- {
- var len=gArrayRegistedMessage.length;
- gArrayRegistedMessage[len]=nMessageId;
- gArrayCompoentsArray[len]=new Array();
- return gArrayCompoentsArray[len];
- }
- function listener(sName,oWindow)
- {
- this.sName=sName;
- this.oWindow=oWindow;
- }
- function RegisterListener(windowName,nMessageId)
- {
- var arrayComponents=GetComponentsArray(nMessageId);
- if(arrayComponents==null)
- arrayComponents=CreateComponentsArray(nMessageId);
-
- if(arrayComponents!=null)
- {
- for (var i=0;i<arrayComponents.length;i++)
- {
- if (arrayComponents[i].sName == windowName)
- return false;
- }
- var oListener=new listener(windowName,null);
- AddToArray(arrayComponents,oListener);
- return true;
- }
- else
- return false;
- }
- function RegisterListener2(oWindow,nMessageId)
- {
- var arrayComponents=GetComponentsArray(nMessageId);
- if(arrayComponents==null)
- arrayComponents=CreateComponentsArray(nMessageId);
-
- if(arrayComponents!=null)
- {
- var oListener=new listener("",oWindow);
- AddToArray(arrayComponents,oListener);
- return true;
- }
- else
- return false;
- }
- function UnRegisterListener2(oWindow,nMessageId)
- {
- var arrayComponents=GetComponentsArray(nMessageId);
- if(arrayComponents!=null)
- {
- for(var i=0;i<arrayComponents.length;i++)
- {
- if(arrayComponents[i].oWindow==oWindow)
- {
- removeItemFromArray(arrayComponents,i);
- return true;
- }
- }
- }
- else
- return false;
- }
- function SendMessage(oMessage)
- {
- var bDelivered=false;
- var arrayComponents=GetComponentsArray(oMessage.nMessageId);
- if(arrayComponents!=null&&arrayComponents.length>0){
- for(var i=0;i<arrayComponents.length;i++)
- {
- if(null!=arrayComponents[i])
- {
- var pFrame;
- if(arrayComponents[i].oWindow==null)
- pFrame=getframehandle(frames,arrayComponents[i].sName);
- else
- pFrame=arrayComponents[i].oWindow;
- if(null!=pFrame)
- {
- if(pFrame.onSendMessageX)
- {
- bDelivered=true;
- if(!pFrame.onSendMessageX(oMessage))
- break;
- }
- if(pFrame.onSendMessage)
- {
- bDelivered=true;
- if(!pFrame.onSendMessage(oMessage))
- break;
- }
- }
- }
- }
- }
- return bDelivered;
- }