一、这个是netmting的例子
<html><head><title>OCX</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><script language="JavaScript">var flag=truefunction showall(){ alist = new Array(); newocx(); list1.value = ""; list2.value = ""; list1.value = ocxtype.outerHTML; j = 0; for (i in ocxtype) { alist[j] = i; j++; } for (i = 0; i < alist.length; i++) for (j = (alist.length-1); j > 0; j--) { if (alist[j] < alist[j-1]) { temps = alist[j]; alist[j] = alist[j-1]; alist[j-1] = temps; } } for (i = 0; i < alist.length; i++) list2.value += alist[i] + "\n"; alert("共有 "+alist.length+" 个属性方法")}function newocx(){ ocxfield.innerHTML = "<OBJECT ID='ocxtype' WIDTH='0px' HEIGHT='0px'" + "CLASSID='CLSID:" + ocxid.value + "'></OBJECT>";}</script></head>
<body bgcolor="#FFFFFF" text="#000000">
<div align="center"> <p>classid <input type="text" id="ocxid" style="width:400" value="F3A614DC-ABE0-11d2-A441-00C04F795683" onchange="jscript:flag=true"> <input type="button" id="look" value="查看" onclick="showall()"> </p> <table width="75%" border="1"> <tr> <td height="24"> <div align="center">html中的写法</div> </td> <td height="24"> <div align="center">OCX中的属性事件</div> </td> </tr> <tr> <td> <textarea id="list1" style="width: 500px; height: 400px;" readonly></textarea> </td> <td> <textarea id="list2" style="width:250px; height:400px;" readonly></textarea> </td> </tr> </table></div><div id="ocxfield"></div></body></html>
<script language="Javascript">function ShowMessenger() { if (messengerUI.object != null) { var MsgrWindow if (messengerUI.myStatus == 2) { MsgrWindow = messengerUI.window; MsgrWindow.show(); } else messengerUI.Signin(0,"",""); } }
function ShowElement(element) { element.style.display=""; document.msn.offline.value="ON"; } function HideElement(element) { //rowShow.style.visibility="hidden"; element.style.display="none"; document.msn.offline.value="OFF"; }
function ShowHide(element) { if (document.msn.offline.value=="ON") { HideElement(element); } else { ShowElement(element); }
} </script> <style type="text/css"> <!-- .small { font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif} body { font-family: Verdana, Arial, Helvetica, sans-serif} a { color:#3D55C4 ; text-decoration: none} a:link { color:#3D55C4 ; text-decoration: none} a:hover { color:#000000 ; text-decoration: none} --> </style> </head>
<body bgcolor="#FFFFFF" text="#000000" vlink="##3D55C4" onclick="(mUser.innerHTML)"> <table cellpadding="1" cellspacing="1" bgcolor="#3D55C4" width="150" id="abc"> <script language="VBScript" id="mcvbs">' this script is loosely based on the original script from Microsoft. ' Various flags and such for god-knows what... Dim A_ A_=False Dim B_,C_,D_ B_=False C_=False D_=False Dim E_,F_,G_ E_=False F_=False G_=3000 ' Ooohhh! I know what this is! This is the amount of milliseconds for refresh Dim H_(),I_ ' H_() is an object array of users. This is also the cache I_=0 ' Variables for different links to different images representing state in Messenger... I think Dim J_,K_,L_,M_,N_,O_,P_,OffL J_="<OBJECT classid="""&"clsid:FB7199AB-79BF-11d2-8D94-0000F875C541"""&" codeType=application/x-oleobject id=MsgrApp width=0 height=0></OBJECT>" K_="<font class=""small"">" M_="<img align=absbottom width=16 height=17 border=0 src=" L_="<br><b> <a href=""vbscript:op(-1)"" class=""color""><img src='http://webdesign.chinaitlab.com/UploadFiles_8014/200605/20060512101437118.gif?http://www.xvna.com' border='0' alt=''>"&" Sign in now... "&"</a></b>" N_=M_&"msn_icons/online1.gif?http://www.xvna.com"&" ALT="""&"Online"&""">" O_=M_&"msn_icons/busy1.gif?http://www.xvna.com"&" ALT="""&"Busy"&""">" P_=M_&"msn_icons/idle1.gif?http://www.xvna.com"&" ALT="""&"Away"&""">" 'Added by JH OffL = M_&"msn_icons/offline1.gif?http://www.xvna.com"&" ALT="""&"Offline"&""">" M_="<img align=absbottom width=16 height=17 border=0 src=" Dim Q_ Q_=False Dim ttl ttl=0 ' added arrays for online and offline contacts Dim OnA() ' online contacts Dim OffA() ' offline contacts ' counters for amount of online and offline Dim OnCtr OnCtr=0 Dim OffCtr OffCtr=0 ' Online/Offline?
Sub DrawInitialState On Error Resume Next Dim R_ R_=MsgrObj.LocalState If Err Then A_=False Else A_=True End If Err.Clear If A_=True Then document.all.getmsgr.style.display="none" DrawContacts Else document.all.getmsgr.style.display="block" End If End Sub
Function HasMsgrApp() appload.innerHTML = J_ On Error Resume Next Dim R_ Set R_=MsgrApp If Err.description="" Then HasMsgrApp=True Else HasMsgrApp=False End If Err.Clear End Function
Sub RefreshMC() If A_ Then If C_ Then D_=True Else D_=False DrawContacts SetRefreshTimer End If End If End Sub
Sub SetRefreshTimer() If Not C_ Then C_=True setTimeout "DoRefresh",G_,"VBScript" End If End Sub
Sub DoRefresh() C_=False If D_ Then RefreshMC End If End Sub
Sub DrawContacts '******************************************************************** ' Modified by JH ' DrawContacts: ' On Error Resume Next ' new list of contacts to iterate thru ' ctr for list loop Dim i i = 0 ' strings for output Dim z, zz z="" zz="" ' for div visibility Dim mU,mO,msgL,noneL,notOn,onli mU="none" mO="none" msgL="none" noneL="none" notOn="block" onli="block" If E_ Then mcClearCache End If ' The heart of the matter If MsgrObj.LocalState And 2 Then 'Online If Not F_ Then mcLoadCache End If If I_>0 Then For i = 0 To ttl select case H_(i).State case 1 OffCtr = OffCtr + 1 case else OnCtr = OnCtr + 1 end select Next ReDim OnA(OnCtr) ReDim OffA(OffCtr) OnCtr = 0 OffCtr = 0 ' loop to get FriendlyNames of contacts and put them in their respective arrays For i = 0 To ttl If H_(i).State=1 then Set OffA(OffCtr)=H_(i) OffCtr = OffCtr + 1 Else Set OnA(OnCtr) = H_(i) OnCtr = OnCtr + 1 End If Next ' sort online users SortUsers2 0,OnCtr-1,True For i = 0 to OnCtr-1 Dim onl Dim h onl="" h="" h = " href='VBScript:op(" & i & ")'" onl = fixName(OnA(i).FriendlyName,17) z = z & "<a" & h & " class=""color"">" & getStateImage(OnA(i).State) & "</a> " & "<a " & h & " title=""" z = z & "Send an instant message to " & onl & "." z = z & """ class=""color"">" & K_ & onl z = z & "</font></a><br>" Next ' sort offline users SortUsers2 0,OffCtr-1,False For i = 0 to OffCtr-1 Dim ofn ofn="" ofn = fixName(OffA(i).FriendlyName,17) zz = zz & getStateImage(OffA(i).State) & " " zz = zz & K_ & ofn & "<br>" Next if OnCtr > 0 Then mU="block" mO="block" document.all.mUser.innerHTML=z document.all.mOff.innerHTML=zz else mU="block" mO="block" document.all.mUser.innerHTML="<font class=""small"">None</font>" document.all.mOff.innerHTML=zz end if Else noneL="block" document.all.noneol.innerHTML=K_&"Your contact list is empty. <br><a href=vbscript:op(-2) class=""color"">Add contacts to your list.</a>"&"</font>" end if Else If MsgrObj.LocalState=256 Or MsgrObj.LocalState=512 Then msgL="block" notOn="none" onli="none" B_ = True document.all.statu.innerHTML = "<br> <img src='http://webdesign.chinaitlab.com/UploadFiles_8014/200605/20060512101437118.gif?http://www.xvna.com' border='0' alt=''> <b>Connecting...</b></div>" Else msgL="block" notOn="none" onli="none" if Not B_ Then document.all.statu.innerHTML = L_ End If End If End If document.all.Online.style.display=onli document.all.mUser.style.display=mU document.all.notOnline.style.display=notOn document.all.mOff.style.display=mO document.all.msgrlogon.style.display=msgL document.all.noneol.style.display=noneL End Sub
Sub mcClearCache I_=0 Erase H_ Erase OnA Erase OffA F_=False E_=False D_=True End Sub
Sub mcLoadCache Dim BB_
Set BB_=MsgrObj.List(0)
Dim CB_ CB_=0 Dim DB_ DB_=BB_.Count ttl=DB_ -1 Redim H_(DB_) For Each u In BB_ Set H_(CB_)=u CB_=CB_+1 Next I_=CB_ SortUsers 0,I_-1 F_=True End Sub
' Added by JH ' Sorts Online/Offline users Sub SortUsers2(EB_,FB_,IsOn) Dim GB_ if(IsOn) then if FB_>EB_ then GB_=ptnOn(EB_,FB_) SortUsers2 EB_,GB_-1,True SortUsers2 GB_+1,FB_,True end if else if FB_>EB_ then GB_=ptnOff(EB_,FB_) SortUsers2 EB_,GB_-1,False SortUsers2 GB_+1,FB_,False end if end if End Sub
Sub SortUsers(EB_,FB_) Dim GB_ if FB_>EB_ then GB_=ptn(EB_,FB_) SortUsers EB_,GB_-1 SortUsers GB_+1,FB_ end if End Sub
' Added by JH ' Function ptnOn(EB_,FB_) Dim HB_,tmp Randomize HB_=Int(Rnd()Mod(FB_-EB_+1))+EB_ Set tmp=OnA(HB_) Set OnA(HB_)=OnA(EB_) Set OnA(EB_)=tmp Dim a,b a=EB_ b=FB_ While b>a If StrComp(OnA(b).FriendlyName,tmp.FriendlyName,1)>=0 Then b=b-1 Else Set OnA(a)=OnA(b) Set OnA(b)=OnA(a+1) Set OnA(a+1)=tmp a=a+1 End If Wend ptnOn=a End Function
' Added by JH ' Function ptnOff(EB_,FB_) Dim HB_,tmp Randomize HB_=Int(Rnd()Mod(FB_-EB_+1))+EB_ Set tmp=OffA(HB_) Set OffA(HB_)=OffA(EB_) Set OffA(EB_)=tmp Dim a,b a=EB_ b=FB_ While b>a If StrComp(OffA(b).FriendlyName,tmp.FriendlyName,1)>=0 Then b=b-1 Else Set OffA(a)=OffA(b) Set OffA(b)=OffA(a+1) Set OffA(a+1)=tmp a=a+1 End If Wend ptnOff=a End Function
SUB MsgrObj_OnLocalStateChangeResult(ByVal hr,ByVal mLocalState,pService) If 0=hr And Err.description="" And A_ Then If mLocalState=256 Or mLocalState=512 Then B_=True document.all.statu.innerHTML="Signing in..." ElseIf mLocalState=1024 Then B_=True document.all.statu.innerHTML="Signing out..." ElseIf mLocalState=1 then B_=True document.all.statu.innerHTML=L_ End If RefreshMC End If END SUB
SUB MsgrObj_OnUserStateChanged(pUser,ByVal mPrevState,pfEnableDefault) 'If Err.description="" Then mcClearCache B_=False RefreshMC 'End If END SUB
SUB MsgrObj_OnListRemoveResult(ByVal hr,ByVal MLIST,ByVal pUser) If 0=hr And 0=MLIST And Err.description="" Then E_=True RefreshMC End If END SUB
SUB MsgrObj_OnListAddResult(ByVal hr,ByVal MLIST,ByVal pUser) If 0=hr And 0=MLIST And Err.description="" Then E_=True RefreshMC End If END SUB
SUB MsgrObj_OnLogonResult(ByVal hr,ByVal pService) If 0=hr And Err.description="" Then mcClearCache B_=False RefreshMC Else mcClearCache B_=False RefreshMC End If END SUB
SUB MsgrObj_OnLogoff() mcClearCache B_=False RefreshMC END SUB
SUB MsgrObj_OnAppShutdown() RefreshMC END SUB
' Launches chat window for a given user, or ' launches the logon window, or simply brings up ' Messenger to show all contacts. Function op(n) If HasMsgrApp Then If n>=0 Then document.all.mctrack.src="P/6/" On Error Resume Next MsgrApp.LaunchIMUI OnA(n) ElseIf-1=n Then MsgrApp.LaunchLogonUI Else MsgrApp.Visible=1 End If End If End Function
Function htmlesc(str) str=Replace(str,"&","&") str=Replace(str,"<","<") htmlesc=Replace(str,">",">") End Function
Function fixName(s,max) If Len(s)>max Then s=Left(s,max-2)&"..." End If fixName=htmlesc(s) End Function
Function getStateImage(t) Select Case t Case 1 getStateImage=OffL 'Offline Case 2 getStateImage=N_ 'Online Case 10 getStateImage=O_ 'Busy Case 14 getStateImage=P_ 'BRB Case 18 getStateImage=P_ 'Away Case 34 getStateImage=P_ 'Away... as well....... Case 50 getStateImage=O_ 'On The Phone Case 66 getStateImage=O_ 'Out To Lunch End Select End Function </script>
<OBJECT id=MsgrObj height=0 codeType=application/x-oleobject width=0 classid=clsid:F3A614DC-ABE0-11d2-A441-00C04F795683> <span style="display:none;"> </span> </OBJECT>
<script language="VBScript" event="onReadyStateChange" for="mcvbs"> If mcvbs.readyState="complete" And Not isDrawn_ Then isDrawn_=True DrawInitialState End If </script>
<script language="VBScript" event="onload" for="window"> If Not isDrawn_ Then isDrawn_=True DrawInitialState call HideElement(mOff) End If </script>
<tr bgcolor="#3D55C4"> <td class="small"> <div class="small" align=center id="msngrheading" style="width:100%; color: #eff7ff; background-color:#3D55C4; padding:3px; padding-left:0px;"><b>MSN Messenger</b></div>
</td> </tr> <tr> <td bgcolor="#EFF7FF" class="small"> <div id="getmsgr" class="small" align=center style="DISPLAY:none;color:#000000;"><br>Download<br><a href="http://messenger.msn.com/">Windows Messenger</a> <img id="mctrack" height="1" alt width="1"> </div> <div id="msgrlogon" class="small" style="DISPLAY:none"> <div id="statu" class="small" style="color:#000000"></div> </div> <!--ONLINE--> <div id="Online" class="small" style="DISPLAY:none;color:#000000"></div> <div id="noneol" class="small" style="DISPLAY:none;color:#000000"></div> <div id="mUser" class="small" style="DISPLAY:none;color:#000000"></div> <br> <!--OFFLINE--> <div id="notOnline" class="small" style="DISPLAY:none;color:#000000"><b><a href="javascript:void(null)" onclick="ShowHide(mOff)" class="small"><img border="0" src="http://webdesign.chinaitlab.com/UploadFiles_8014/200605/20060512101438465.gif?http://www.xvna.com" WIDTH="16" HEIGHT="16"> Buddies offline</a></b> </div> <div id="mOff" class="small" style="DISPLAY:none; color:#000000"></div> <span id="appload" class="small" style="DISPLAY: none"></span> </td> <form name="msn"> <input type="hidden" value="ON" name="offline"> </form> </tr> </table> <br>