一、这个是netmting的例子 1<html> 2<head> 3<title>OCX</title> 4<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> 5<script language="JavaScript"> 6var flag=true 7function showall(){ 8alist = new Array(); 9newocx(); 10list1.value = ""; 11list2.value = ""; 12list1.value = ocxtype.outerHTML; 13j = 0; 14for (i in ocxtype) 15{ 16alist[j] = i; 17j++; 18} 19for (i = 0; i < alist.length; i++) 20for (j = (alist.length-1); j > 0; j--) 21{ 22if (alist[j] < alist[j-1]) 23{ 24temps = alist[j]; 25alist[j] = alist[j-1]; 26alist[j-1] = temps; 27} 28} 29for (i = 0; i < alist.length; i++) 30list2.value += alist[i] + "\n"; 31alert("共有 "+alist.length+" 个属性方法") 32} 33function newocx() 34{ 35ocxfield.innerHTML = "<OBJECT ID='ocxtype' WIDTH='0px' HEIGHT='0px'" + 36"CLASSID='CLSID:" + ocxid.value + "'></OBJECT>"; 37} 38</script> 39</head> 40<body bgcolor="#FFFFFF" text="#000000"> 41<div align="center"> 42<p>classid 43<input id="ocxid" onchange="jscript:flag=true" style="width:400" type="text" value="F3A614DC-ABE0-11d2-A441-00C04F795683"/> 44<input id="look" onclick="showall()" type="button" value="查看"/> 45</p> 46<table border="1" width="75%"> 47<tr> 48<td height="24"> 49<div align="center">html中的写法</div> 50</td> 51<td height="24"> 52<div align="center">OCX中的属性事件</div> 53</td> 54</tr> 55<tr> 56<td> 57<textarea id="list1" readonly="" style="width: 500px; height: 400px;"></textarea> 58</td> 59<td> 60<textarea id="list2" readonly="" style="width:250px; height:400px;"></textarea> 61</td> 62</tr> 63</table> 64</div> 65<div id="ocxfield"> 66</div> 67</body> 68</html> 二、 1<script language="Javascript"> 2function ShowMessenger() { 3if (messengerUI.object != null) { 4var MsgrWindow 5if (messengerUI.myStatus == 2) { 6MsgrWindow = messengerUI.window; 7MsgrWindow.show(); 8} 9else 10messengerUI.Signin(0,"",""); 11} 12} 13 14function ShowElement(element) { 15element.style.display=""; 16document.msn.offline.value="ON"; 17} 18function HideElement(element) { 19//rowShow.style.visibility="hidden"; 20element.style.display="none"; 21document.msn.offline.value="OFF"; 22} 23 24function ShowHide(element) { 25if (document.msn.offline.value=="ON") { 26HideElement(element); 27} 28else { 29ShowElement(element); 30} 31 32} 33</script> 1<style type="text/css"> 2<!-- 3.small { font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif} 4body { font-family: Verdana, Arial, Helvetica, sans-serif} 5a { color:#3D55C4 ; text-decoration: none} 6a:link { color:#3D55C4 ; text-decoration: none} 7a:hover { color:#000000 ; text-decoration: none} 8\--> 9</style> 1<body bgcolor="#FFFFFF" onclick="(mUser.innerHTML)" text="#000000" vlink="##3D55C4"> 2<table bgcolor="#3D55C4" cellpadding="1" cellspacing="1" id="abc" width="150"> 3<script id="mcvbs" language="VBScript"> 4' this script is loosely based on the original script from Microsoft. 5' Various flags and such for god-knows what... 6Dim A_ 7A_=False 8Dim B_,C_,D_ 9B_=False 10C_=False 11D_=False 12Dim E_,F_,G_ 13E_=False 14F_=False 15G_=3000 ' Ooohhh! I know what this is! This is the amount of milliseconds for refresh 16Dim H_(),I_ ' H_() is an object array of users. This is also the cache 17I_=0 18' Variables for different links to different images representing state in Messenger... I think 19Dim J_,K_,L_,M_,N_,O_,P_,OffL 20J_="<OBJECT classid="""&"clsid:FB7199AB-79BF-11d2-8D94-0000F875C541"""&" codeType=application/x-oleobject id=MsgrApp width=0 height=0></OBJECT>" 21K_="<font class=""small"">" 22M_="<img align=absbottom width=16 height=17 border=0 src=" 23L_="<br><b> <a href=""vbscript:op(-1)"" class=""color""><img src='msn_icons/msn_ppl.gif' border='0' alt=''>"&" Sign in now... "&"</a></b>" 24N_=M_&"msn_icons/online1.gif"&" ALT="""&"Online"&""">" 25O_=M_&"msn_icons/busy1.gif"&" ALT="""&"Busy"&""">" 26P_=M_&"msn_icons/idle1.gif"&" ALT="""&"Away"&""">" 27'Added by JH 28OffL = M_&"msn_icons/offline1.gif"&" ALT="""&"Offline"&""">" 29M_="<img align=absbottom width=16 height=17 border=0 src=" 30Dim Q_ 31Q_=False 32Dim ttl 33ttl=0 34' added arrays for online and offline contacts 35Dim OnA() ' online contacts 36Dim OffA() ' offline contacts 37' counters for amount of online and offline 38Dim OnCtr 39OnCtr=0 40Dim OffCtr 41OffCtr=0 42' Online/Offline? 43 44Sub DrawInitialState 45On Error Resume Next 46Dim R_ 47R_=MsgrObj.LocalState 48If Err Then 49A_=False 50Else 51A_=True 52End If 53Err.Clear 54If A_=True Then 55document.all.getmsgr.style.display="none" 56DrawContacts 57Else 58document.all.getmsgr.style.display="block" 59End If 60End Sub 61 62Function HasMsgrApp() 63appload.innerHTML = J_ 64On Error Resume Next 65Dim R_ 66Set R_=MsgrApp 67If Err.description="" Then 68HasMsgrApp=True 69Else 70HasMsgrApp=False 71End If 72Err.Clear 73End Function 74 75Sub RefreshMC() 76If A_ Then 77If C_ Then 78D_=True 79Else 80D_=False 81DrawContacts 82SetRefreshTimer 83End If 84End If 85End Sub 86 87Sub SetRefreshTimer() 88If Not C_ Then 89C_=True 90setTimeout "DoRefresh",G_,"VBScript" 91End If 92End Sub 93 94Sub DoRefresh() 95C_=False 96If D_ Then 97RefreshMC 98End If 99End Sub 100 101Sub DrawContacts 102'******************************************************************** 103' Modified by JH 104' DrawContacts: 105' 106On Error Resume Next 107' new list of contacts to iterate thru 108' ctr for list loop 109Dim i 110i = 0 111' strings for output 112Dim z, zz 113z="" 114zz="" 115' for div visibility 116Dim mU,mO,msgL,noneL,notOn,onli 117mU="none" 118mO="none" 119msgL="none" 120noneL="none" 121notOn="block" 122onli="block" 123If E_ Then 124mcClearCache 125End If 126' The heart of the matter 127If MsgrObj.LocalState And 2 Then 128'Online 129If Not F_ Then 130mcLoadCache 131End If 132If I_>0 Then 133For i = 0 To ttl 134select case H_(i).State 135case 1 136OffCtr = OffCtr + 1 137case else 138OnCtr = OnCtr + 1 139end select 140Next 141ReDim OnA(OnCtr) 142ReDim OffA(OffCtr) 143OnCtr = 0 144OffCtr = 0 145' loop to get FriendlyNames of contacts and put them in their respective arrays 146For i = 0 To ttl 147If H_(i).State=1 then 148Set OffA(OffCtr)=H_(i) 149OffCtr = OffCtr + 1 150Else 151Set OnA(OnCtr) = H_(i) 152OnCtr = OnCtr + 1 153End If 154Next 155' sort online users 156SortUsers2 0,OnCtr-1,True 157For i = 0 to OnCtr-1 158Dim onl 159Dim h 160onl="" 161h="" 162h = " href='VBScript:op(" & i & ")'" 163onl = fixName(OnA(i).FriendlyName,17) 164z = z & "<a" & h & " class=""color"">" & getStateImage(OnA(i).State) & "</a> " & "<a " & h & " title=""" 165z = z & "Send an instant message to " & onl & "." 166z = z & """ class=""color"">" & K_ & onl 167z = z & "</font></a><br>" 168Next 169' sort offline users 170SortUsers2 0,OffCtr-1,False 171For i = 0 to OffCtr-1 172Dim ofn 173ofn="" 174ofn = fixName(OffA(i).FriendlyName,17) 175zz = zz & getStateImage(OffA(i).State) & " " 176zz = zz & K_ & ofn & "<br>" 177Next 178if OnCtr > 0 Then 179mU="block" 180mO="block" 181document.all.mUser.innerHTML=z 182document.all.mOff.innerHTML=zz 183else 184mU="block" 185mO="block" 186document.all.mUser.innerHTML="<font class=""small"">None</font>" 187document.all.mOff.innerHTML=zz 188end if 189Else 190noneL="block" 191document.all.noneol.innerHTML=K_&"Your contact list is empty. <br><a href=vbscript:op(-2) class=""color"">Add contacts to your list.</a>"&"</font>" 192end if 193Else 194If MsgrObj.LocalState=256 Or MsgrObj.LocalState=512 Then 195msgL="block" 196notOn="none" 197onli="none" 198B_ = True 199document.all.statu.innerHTML = "<br> <img src='msn_icons/msn_ppl.gif' border='0' alt=''> <b>Connecting...</b></div>" 200Else 201msgL="block" 202notOn="none" 203onli="none" 204if Not B_ Then 205document.all.statu.innerHTML = L_ 206End If 207End If 208End If 209document.all.Online.style.display=onli 210document.all.mUser.style.display=mU 211document.all.notOnline.style.display=notOn 212document.all.mOff.style.display=mO 213document.all.msgrlogon.style.display=msgL 214document.all.noneol.style.display=noneL 215End Sub 216 217Sub mcClearCache 218I_=0 219Erase H_ 220Erase OnA 221Erase OffA 222F_=False 223E_=False 224D_=True 225End Sub 226 227Sub mcLoadCache 228Dim BB_ 229 230Set BB_=MsgrObj.List(0) 231 232Dim CB_ 233CB_=0 234Dim DB_ 235DB_=BB_.Count 236ttl=DB_ -1 237Redim H_(DB_) 238For Each u In BB_ 239Set H_(CB_)=u 240CB_=CB_+1 241Next 242I_=CB_ 243SortUsers 0,I_-1 244F_=True 245End Sub 246 247' Added by JH 248' Sorts Online/Offline users 249Sub SortUsers2(EB_,FB_,IsOn) 250Dim GB_ 251if(IsOn) then 252if FB_>EB_ then 253GB_=ptnOn(EB_,FB_) 254SortUsers2 EB_,GB_-1,True 255SortUsers2 GB_+1,FB_,True 256end if 257else 258if FB_>EB_ then 259GB_=ptnOff(EB_,FB_) 260SortUsers2 EB_,GB_-1,False 261SortUsers2 GB_+1,FB_,False 262end if 263end if 264End Sub 265 266Sub SortUsers(EB_,FB_) 267Dim GB_ 268if FB_>EB_ then 269GB_=ptn(EB_,FB_) 270SortUsers EB_,GB_-1 271SortUsers GB_+1,FB_ 272end if 273End Sub 274 275' Added by JH 276' 277Function ptnOn(EB_,FB_) 278Dim HB_,tmp 279Randomize 280HB_=Int(Rnd()Mod(FB_-EB_+1))+EB_ 281Set tmp=OnA(HB_) 282Set OnA(HB_)=OnA(EB_) 283Set OnA(EB_)=tmp 284Dim a,b 285a=EB_ 286b=FB_ 287While b>a 288If StrComp(OnA(b).FriendlyName,tmp.FriendlyName,1)>=0 Then 289b=b-1 290Else 291Set OnA(a)=OnA(b) 292Set OnA(b)=OnA(a+1) 293Set OnA(a+1)=tmp 294a=a+1 295End If 296Wend 297ptnOn=a 298End Function 299 300' Added by JH 301' 302Function ptnOff(EB_,FB_) 303Dim HB_,tmp 304Randomize 305HB_=Int(Rnd()Mod(FB_-EB_+1))+EB_ 306Set tmp=OffA(HB_) 307Set OffA(HB_)=OffA(EB_) 308Set OffA(EB_)=tmp 309Dim a,b 310a=EB_ 311b=FB_ 312While b>a 313If StrComp(OffA(b).FriendlyName,tmp.FriendlyName,1)>=0 Then 314b=b-1 315Else 316Set OffA(a)=OffA(b) 317Set OffA(b)=OffA(a+1) 318Set OffA(a+1)=tmp 319a=a+1 320End If 321Wend 322ptnOff=a 323End Function 324 325SUB MsgrObj_OnLocalStateChangeResult(ByVal hr,ByVal mLocalState,pService) 326If 0=hr And Err.description="" And A_ Then 327If mLocalState=256 Or mLocalState=512 Then 328B_=True 329document.all.statu.innerHTML="Signing in..." 330ElseIf mLocalState=1024 Then 331B_=True 332document.all.statu.innerHTML="Signing out..." 333ElseIf mLocalState=1 then 334B_=True 335document.all.statu.innerHTML=L_ 336End If 337RefreshMC 338End If 339END SUB 340 341SUB MsgrObj_OnUserStateChanged(pUser,ByVal mPrevState,pfEnableDefault) 342'If Err.description="" Then 343mcClearCache 344B_=False 345RefreshMC 346'End If 347END SUB 348 349SUB MsgrObj_OnListRemoveResult(ByVal hr,ByVal MLIST,ByVal pUser) 350If 0=hr And 0=MLIST And Err.description="" Then 351E_=True 352RefreshMC 353End If 354END SUB 355 356SUB MsgrObj_OnListAddResult(ByVal hr,ByVal MLIST,ByVal pUser) 357If 0=hr And 0=MLIST And Err.description="" Then 358E_=True 359RefreshMC 360End If 361END SUB 362 363SUB MsgrObj_OnLogonResult(ByVal hr,ByVal pService) 364If 0=hr And Err.description="" Then 365mcClearCache 366B_=False 367RefreshMC 368Else 369mcClearCache 370B_=False 371RefreshMC 372End If 373END SUB 374 375SUB MsgrObj_OnLogoff() 376mcClearCache 377B_=False 378RefreshMC 379END SUB 380 381SUB MsgrObj_OnAppShutdown() 382RefreshMC 383END SUB 384 385 386' Launches chat window for a given user, or 387' launches the logon window, or simply brings up 388' Messenger to show all contacts. 389Function op(n) 390If HasMsgrApp Then 391If n>=0 Then 392document.all.mctrack.src="P/6/" 393On Error Resume Next 394MsgrApp.LaunchIMUI OnA(n) 395ElseIf-1=n Then 396MsgrApp.LaunchLogonUI 397Else 398MsgrApp.Visible=1 399End If 400End If 401End Function 402 403Function htmlesc(str) 404str=Replace(str,"&","&") 405str=Replace(str,"<","<") 406htmlesc=Replace(str,">",">") 407End Function 408 409Function fixName(s,max) 410If Len(s)>max Then 411s=Left(s,max-2)&"..." 412End If 413fixName=htmlesc(s) 414End Function 415 416Function getStateImage(t) 417Select Case t 418Case 1 419getStateImage=OffL 'Offline 420Case 2 421getStateImage=N_ 'Online 422Case 10 423getStateImage=O_ 'Busy 424Case 14 425getStateImage=P_ 'BRB 426Case 18 427getStateImage=P_ 'Away 428Case 34 429getStateImage=P_ 'Away... as well....... 430Case 50 431getStateImage=O_ 'On The Phone 432Case 66 433getStateImage=O_ 'Out To Lunch 434End Select 435End Function 436</script> 437<object classid="clsid:F3A614DC-ABE0-11d2-A441-00C04F795683" codetype="application/x-oleobject" height="0" id="MsgrObj" width="0"> 438<span style="display:none;"> </span> 439</object> 440<script event="onReadyStateChange" for="mcvbs" language="VBScript"> 441If mcvbs.readyState="complete" And Not isDrawn_ Then 442isDrawn_=True 443DrawInitialState 444End If 445</script> 446<script event="onload" for="window" language="VBScript"> 447If Not isDrawn_ Then 448isDrawn_=True 449DrawInitialState 450call HideElement(mOff) 451End If 452</script> 453<tr bgcolor="#3D55C4"> 454<td class="small"> 455<div align="center" class="small" id="msngrheading" style="width:100%; color: #eff7ff; background-color:#3D55C4; padding:3px; padding-left:0px;"><b>MSN Messenger</b></div> 456</td> 457</tr> 458<tr> 459<td bgcolor="#EFF7FF" class="small"> 460<div align="center" class="small" id="getmsgr" style="DISPLAY:none;color:#000000;"><br/>Download<br/><a href=" http://messenger.msn.com/">Windows Messenger</a> 461<img alt="" height="1" id="mctrack" width="1"/> 462</div> 463<div class="small" id="msgrlogon" style="DISPLAY:none"> 464<div class="small" id="statu" style="color:#000000"></div> 465</div> 466<!--ONLINE--> 467<div class="small" id="Online" style="DISPLAY:none;color:#000000"></div> 468<div class="small" id="noneol" style="DISPLAY:none;color:#000000"></div> 469<div class="small" id="mUser" style="DISPLAY:none;color:#000000"></div> 470<br/> 471<!--OFFLINE--> 472<div class="small" id="notOnline" style="DISPLAY:none;color:#000000"> 473<b><a class="small" href="javascript:void(null)" onclick="ShowHide(mOff)"><img border="0" height="16" src="msn_icons/icon_messenger6.gif" width="16"/> Buddies offline</a></b> 474</div> 475<div class="small" id="mOff" style="DISPLAY:none; color:#000000"></div> 476<span class="small" id="appload" style="DISPLAY: none"></span> 477</td> 478<form name="msn"> 479<input name="offline" type="hidden" value="ON"/> 480</form> 481</tr> 482</table> 483<br/></body>