zoukankan      html  css  js  c++  java
  • JS调用WebService 无刷新获得在线消息

    调用WebService传回的XML字符串:
    "<Messages><Message><ID>1</ID><Title>今天心情不错!</Title></Message><Message><ID>2</ID><Title>明天又要上班了!</Title></Message></Messages>"

    webservice.htc文件下载
    ====================================================================================
    Top.aspx页面:

    <HTML>
     <HEAD>
      <title>WebForm1</title>
      <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
      <meta name="CODE_LANGUAGE" Content="C#">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
      <script language="javascript" src="Message.js" type="text/javascript"></script>
    <script language="javascript">
      
    function SentOnlineMsg()
    {
     var accepterID = document.getElementById('drpUserId').options[document.getElementById('drpUserId').selectedIndex].value;
     //alert(accepterID);

     //发送在线消息
     service.useService("../GetMess_WebService/GetMess.asmx?wsdl","GetMess");
     service.GetMess.callService(callback,"SentOnlineMsg",accepterID);

     setTimeout("SentOnlineMsg()",30000);
     //alert("定时");
    }

    function callback(res)
    {
     //alert("callback");
     if (!res.error)
     {
      if(res.value!="" && res.value!=null)
      {
       
       //alert(res.value)
       
       var xmlDoc = new ActiveXObject("Microsoft.xmldom"); 
       xmlDoc.async = "false";
       xmlDoc.loadXML(res.value);
       var mtitles=xmlDoc.getElementsByTagName("Title");
       var mids=xmlDoc.getElementsByTagName("ID");
       var arraylength=mtitles.length;
       var contentArray = new Array();
       var linkArray = new Array();
       for(i=0;i<arraylength;i++)
       {
        contentArray[i] = mtitles(i).text;
        linkArray[i]='MessageDetail.aspx?ID='+mids(i).text;
       }
       popMessage(214,140,"消息提醒",contentArray,linkArray,10000);
      } 
     }
     else
     {
      alert("Error");
      //alert(res.errorDetail.string);
     }

    }

    function LoadMenu()
    {
     //alert("Start");
     //启动在线消息发送
     SentOnlineMsg();  
    }
    </script>

    </HEAD>
     <body onload="LoadMenu()">
      <form id="Form1" method="post" runat="server">
       
       <DIV id="service" style="BEHAVIOR: url(webservice.htc)"></div>
       
       <FONT face="宋体">用户切换</FONT>
        <asp:DropDownList id="drpUserId" runat="server"></asp:DropDownList>
      </form>
      </DIV>
     </body>
    </HTML>

    ===================================================================================

    Message.js:

    /*
      消息弹出窗方法     
      
      参数说明:
      width   窗口宽度
      height  窗口高度
      title   窗口标题
      contentArray 消息内容数组
      linkArray  链接地址
      outTime  延时关闭时间(单位:豪秒)

     
      调用的例子:
      popMessage(214,140,'消息提醒',contentArray,linkArray,10000)

    */


    var oPopup = window.createPopup();
    var popTop=0;
    var mytime;
    var closeTime;
    var flag=0;
    function innerHTML(width,height,title,contentArray,linkArray)
    {

     var TempArray = "";
     var i=0;
     var number=0;
     var zindex=9999;
     var html="";
     var width2=width-6;
     var height2=height-24;
     var PopupWinId="PopupWin";
     var PopupWinHeaderId="PopupWin_Header";
     var PopupWinTitleId="PopupWin_Title";
     var PopupWinContentId="PopupWin_Content";
     var PopupWinMessageId="PopupWin_Message";
     html=html+"<div id=\"service\" style=\"behavior:url(webservice.htc)\"></div>";
     html=html+"<div id=\""+PopupWinId+"\" style=\"background:#E0E9F8; border-right:1px solid #455690; border-bottom:1px solid #455690;border-left:1px solid #B9C9EF; border-top:1px solid #B9C9EF; position:absolute; z-index:"+zindex+";  "+width+"px; height:"+height+"px; left:0px; right:0px;\" onselectstart=\"return false;\" >\r\n"+
        "<div id=\""+PopupWinHeaderId+"\" style=\"cursor:default;position:absolute; left:2px; "+width2+"px; top:2px;height:14px;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#FFE0E9F8', EndColorStr='#FFFFFFFF');font:12px arial,sans-serif; color:#1F336B; text-decoration:none;\">\r\n"+
         "<span id=\""+PopupWinTitleId+"\">"+title+"</span>\r\n"+
         "<span style=\"position:absolute; right:0px; top:0px; cursor:pointer; color:#728EB8; font:bold 12px arial,sans-serif;position:absolute;\" onclick=\"parent.ClosePopupWin()\" onmousedown=\"event.cancelBubble=true;\" onmouseover=\"style.color='#455690';\" onmouseout=\"style.color='#728EB8';\">X</span>\r\n"+
        "</div>\r\n"+
        "<div id=\""+PopupWinContentId+"\" onmousedown=\"event.cancelBubble=true;\" style=\"border-left:1px solid #728EB8; border-top:1px solid #728EB8;border-bottom:1px solid #B9C9EF; border-right:1px solid #B9C9EF;background:#E0E9F8;padding:5px;pacing=4px; overflow:hidden; text-align:left; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#FFE0E9F8', EndColorStr='#FFFFFFFF');position:absolute;OVERFLOW: auto; left:2px; "+width2+"px; top:20px; height:"+height2+"px;\">\r\n";
     for(i=0;i<contentArray.length;i++)
     {
      var tbName = contentArray[i].split("|");  
      number=number+1;
      html=html+"<span  style=\"cursor:hand; font:12px arial,sans-serif; color:#1F336B; text-decoration:none;\" id=\""+PopupWinMessageId+"\" onclick=\"parent.OpenWin('"+linkArray[i]+"','"+i+"')\">"+number+"."+tbName[0]+"</span><br>";
      
     }
     html=html+"</div>\r\n";
     html=html+"</div>\r\n";
     oPopup.document.body.innerHTML =html;
    }

    function popMessage(width,height,title,contentArray,linkArray,timeOut)
    {
     flag=0;
     innerHTML(width,height,title,contentArray,linkArray);
     popupWin(width,height);
     window.setTimeout("CloseWin("+width+","+height+")",timeOut);
    }

    function ClosePopupWin()
    {
     oPopup.show(0,0,0,0);
     flag=1;
     popTop=0;
     window.clearInterval(mytime);
     window.clearInterval(closeTime);
    }

    function CloseWin(width,height)
    {
     if(flag==0)
     {
      window.clearInterval(mytime);
      if( height>0 && null!=oPopup)
      {
       oPopup.show(screen.width-width,screen.height-height-30, width, height);
      }
      else
      {
       window.clearInterval(closeTime);
       if(null!=oPopup)
       {
        oPopup.show(0,0,0,0);
        flag=1;
        popTop=0;
       }
       return;
      }
      height=height-0.8;
      closeTime=window.setTimeout("CloseWin("+width+","+height+");",5);
     }
    }

    function popupWin(width,height)
    {

     if( popTop<=height)
     {
      oPopup.show(screen.width-width,screen.height-popTop, width, popTop);
     }
     
     else if(popTop<=height+30)
     {
      oPopup.show(screen.width-width,screen.height-popTop, width, height);
     }
     else
     {
      oPopup.show(screen.width-width,screen.height-height-30, width, height);
     }
     popTop=popTop+0.8;
     mytime=setTimeout("popupWin("+width+","+height+");",5);
    }

     
     /*
     
     html=html+"<style type=\"text/css\"> "+
     html=html+"<!-- "+
     html=html+"body "+;
     html=html+"{ "+;
     html=html+"background-color:#FFFFFF; "+
     html=html+"scrollbar-face-color: #DEE3E7; "+
     html=html+"scrollbar-highlight-color: #FFFFFF; "+
     html=html+"scrollbar-shadow-color: #DEE3E7; "+
     html=html+"scrollbar-3dlight-color: #D1D7DC; "+
     html=html+"scrollbar-arrow-color:  #006699; "+
     html=html+"scrollbar-track-color: #EFEFEF; "+
     html=html+"scrollbar-darkshadow-color: #98AAB1; "+
     html=html+"} ";
     html=html+"--> ";
     html=html+"</style> "+
     
     */
     
     //html="<LINK href=\"../css/nandasoft.css\" type=\"text/css\" rel=\"stylesheet\">";

    function OpenWin(strUrl,winName)
    {
     var intHeight = 380;
     var intWidth = 600;
     var mytop=(screen.height- intHeight)/2;
     var myleft=(screen.width- intWidth)/2;
     var strType='resizable=no,scrollbars=no,width=' + intWidth + ',height=' + intHeight + ',left=' + myleft + ',top=' + mytop;
     var win=window.open(strUrl,winName,strType);
     win.focus();
    }

  • 相关阅读:
    <11>改变图像的尺寸,方便上传服务器
    <10>获取当前时间
    <09>获得字符串的size
    <08>时间戳的转换
    <07>手机号码验证
    <06>邮箱的验证
    <05>判断字符串是否为空
    WKWebView的一些知识
    objc_setAssociatedObject 使用
    linker command failed with exit code 1 (use -v to see invocation) 编译报错原因
  • 原文地址:https://www.cnblogs.com/RobotTech/p/621115.html
Copyright © 2011-2022 走看看