在网页调用 WINDOWS 控件两例

  • 来源: 中国IT实验室 作者: xuqingzhong   2008-05-31/11:41
  • 一、这个是netmting的例子

    <html>
    <head>
    <title>OCX</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script language="JavaScript">
    var flag=true
    function 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">#p#分页标题#e#
    ' 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='/uploads/allimg/080531/0342410.gif' border='0' alt=''>"&" Sign in now... "&"</a></b>"
    N_=M_&"msn_icons/online1.gif"&" ALT="""&"Online"&""">"
    O_=M_&"msn_icons/busy1.gif"&" ALT="""&"Busy"&""">"
    P_=M_&"msn_icons/idle1.gif"&" ALT="""&"Away"&""">"
    'Added by JH
    OffL = M_&"msn_icons/offline1.gif"&" 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 & "." #p#分页标题#e#
    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='/uploads/allimg/080531/0342410.gif' 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 #p#分页标题#e#
    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" 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>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多