WorldSoftware  
世界軟件,軟件的世界!

 

一、用Javascript调用了服务器端的事件
 
  先預設個服務器端控件,但在界面端不要讓之顯示,如

<asp:LinkButton ID="CreateDir" runat="server" OnClick="CreateDir_Click" />

JS:

__doPostBack('CreateDir', '');


这样就调用了服务器端的事件程序:CreateDir_Click()
二、下面的例子是在客户端用 javascript 调用服务器端 webservice 的例子。看看

<script id="clientEventHandlersJS" language="javascript">
   
var iCallID;
   
var xmlDoc;
   
var strType;
   
var strMyName,strMyNickName,strName,strNickName,strFriendName,strFriendNickName;
   
var bPrivate,bOnlyUser ;  //私聊
   //初始化链接
   function window_onload() {
    divWSBehavior.useService(
"../WSBitUnite.asmx?WSDL","ServiceChat"); 
    xmlDoc 
= new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async
="false";
    iCallID 
= divWSBehavior.ServiceChat.callService("ReadMessage");
    window.setInterval(
"ReadMessage();",3000);
   }

   
//读取信息
   function ReadMessage()
   
{
    iCallID 
= divWSBehavior.ServiceChat.callService(GetData,"ReadMessage");
   }

   
//读取信息
   function GetData(result)
   
{
    
    
var strBody;
    
var strPrivate,strMessage,strOther;
    
    
//alert(result.value);
    
    xmlDoc.loadXML(result.value);
    
for (var i=0 ;i<xmlDoc.documentElement.childNodes.length;i++)
    
{
    
var xmlNode = xmlDoc.documentElement.childNodes(i);
    
//读取用户的聊天信息
    strName=xmlNode.childNodes(0).text;
    
//把名字改成昵称
    strNickName=strName;
    strFriendNickName
=xmlNode.childNodes(1).text;
    
//把名字改成昵称
    strFrienNickName=strFriendName;
    strPrivate
=xmlNode.childNodes(2).text;
    strMessage
=xmlNode.childNodes(3).text;
    strOther
=xmlNode.childNodes(4).text;
    
//根据不同情况,决定如何显示数据。
    switch(xmlDoc.documentElement.childNodes(i).nodeName)
    
{
     
case "Chat":
      strMessage
=strMessage.replace(':)', '<img src="../images/chat/regular_smile.gif" width="19" htight="19" >');
      strMessage
=strNickName + "" + strFriendNickName + "说:" +strMessage + '<br>';
      divUser.insertAdjacentHTML(
"beforeEnd" ,strMessage)  ;
      
break;
     
case "UpFile":
      strMessage
=strNickName + "" + strFriendNickName + "发送了文件:" +strMessage + '<br>';    
      parent.showfile(strMessage)  ;
      
break;
     
case "Music":
      strBody
="'" + xmlNode.childNodes(1).text + "'" ;
      strMessage
="'" + xmlNode.childNodes(0).text + "'" + "" + strNickName;
      strMessage
+='说:我给你点了一首歌曲<img src="images/Music/play.gif" width="13" height="12" border="0" style="CURSOR: hand" onClick="PlayChatMusic(' + strBody + ')">希望你喜欢。<br>';
      
break;
     
case "Video":
      strBody
="'" + xmlNode.childNodes(1).text + "'" ;
      strMessage
="'" + xmlNode.childNodes(0).text + "'" + "" + strNickName;
      strMessage
+='说:我给你点了一部电影<img src="images/Music/play.gif" width="13" height="12" border="0" style="CURSOR: hand" onClick="PlayChatMusic(' + strBody + ')">希望你喜欢。<br>';
      
break;
     
case "OnLine":
      strMessage
+= xmlNode.childNodes(1).text + '来到了聊天室。<br>' ;
      
break;
     
case "OffLine":
      strMessage
+= xmlNode.childNodes(1).text + '离开了聊天室。<br>' ;
      
break;
     
case "ChangeRoom":
      strMessage
=xmlNode.childNodes(0).text + "" +  xmlNode.childNodes(1).text + '去了。<br>' ;
      
break;    
     
default:
     
     
    }

    
     
//strMessage=strMessage.replace(':)', '<img src="http://<%=strHttpPath%>/images/chat/regular_smile.gif" width="19" htight="19" >');
     //divUser.insertAdjacentHTML("beforeEnd" ,strMessage)  ;
     divUser.doScroll();
   }


   }


   
function document.onkeypress()
    
{
    
if (event.keyCode == 13)
     
{
      WriteChat();
      
var  ChatMessage;
      strFriend
=document.FormChat.DropDownListUser.text;
      
//alert(strFriend);
      ChatMessage = document.FormChat.TextBoxChat.value; 
      
//divWSBehavior.innerHTML 
      divUser.innerHTML+=strNickName + "" + strFriendNickName + "说:" + ChatMessage + "<BR>";
      document.FormChat.TextBoxChat.value
="";
      event.keyCode 
=0;
     }

    }

       
   
//显示文件传对话框
   function showfile()
    
{
     strNickName
=parent.strFriend;
     window.open(
"../SoftWare/frmUpFile.aspx?Friend=" + parent.strFriend) 
    }

   
function ShowFace(e)
   
{
   
//表情图标
   if (e.style.visibility == "hidden"
    
{
     e.style.visibility 
= "visible";
    }
 
    
else 
    
{
     e.style.visibility 
= "hidden";
    }


   }

   
//表情图标   
   function clickface(strImgName,Layerface)
   
{
   document.FormChat.TextBoxChat.value
+=strImgName;
   ShowFace(Layerface);
   }

   
//播放音乐
   void function PlayChatMusic(strFileName)
   
{
    parent.rightFrame.frames('frameMusic').PlayMusic(strFileName);
   }
 

   
//写聊天信息
   function WriteChat()
   
{
    
var strFriend, ChatMessage;
    strFriend
=document.FormChat.DropDownListUser.value;
    
//alert(strFriend);
    ChatMessage = document.FormChat.TextBoxChat.value; 
    divWSBehavior.ServiceChat.callService(
"WriteMessage",strFriend,strType,strMessage,"");
    
//document.FormChat.TextBoxChat.value="";
   }

   
var vDialog=null;
   
function showDialog(width,height){
   
var strstatus
   strstatus
="status:no;resizable:yes;dialogHeight:" + height + "px;dialogWidth:" + width + "px;unadorne:yes";
   vDialog
=showModelessDialog("../SoftWare/frmUpFile.aspx?Friend=" + parent.strFriend,window,strstatus);
   }

  
</script>

<div id="divWSBehavior" style="DISPLAY: none; BEHAVIOR: url(webservice.htc)"></div>

posted on 2006-08-05 21:20  WorldNet  阅读(1515)  评论(1编辑  收藏  举报