聊天常用js代码

<script language='javascript'>
//转意义字符与替换图象以及字体HtmlEncode(text)
function HtmlEncode(text)
{
return text.replace(//"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/#br#/g,'<br>').replace(/IMGSTART/g,'<IMG style=').replace(/IMGMID/g,' src=').replace(/IMGEND/g,'>').replace(/FONTSTART/g,'<font  style=/"').replace(/FONTEND/g,'</font>').replace(/FONTSTYLEEND/g,'/">').replace(/FORUELSTARTMA/g,'<a target=_blank href=').replace(/FORUELENDMA/g,'</a>').replace(/NIFORPIEHAO/g,'&#39;');
}
//打印scrolldIV这个div的内码内容getcontent()
function getcontent()
{
document.write(document.getElementById("scrolldIV").innerText);
}
//保存咨询记录函数CmdSave()
function CmdSave()
{
var OW = window.open('','','');
var DD = new Date();
OW.document.open();
OW.document.write(document.getElementById("scrolldIV").innerHTML);
OW.document.execCommand ("SaveAs",true,"咨询记录-"+ DD.getYear() + "-" + DD.getMonth() + "-" + DD.getDate() + "-" + DD.getHours() + "-" + DD.getMinutes() +".htm");
OW.close();
}
//把用户列表加载入到scrolldIV,函数输入值为用户列表ChatText(Text)
function ChatText(Text)
{
if(Text!="")
    {
     document.getElementById('scrolldIV').innerHTML=document.getElementById('scrolldIV').innerHTML+ HtmlEncode(Text);
     window.form1.ScrolldNeirong.value=document.getElementById('scrolldIV').innerHTML;
    document.getElementById('scrolldIV').scrollTop = document.getElementById('scrolldIV').scrollHeight;document.form1.TextBox1.focus();
    }
    if(document.getElementById('scrolldIV').scrollTop>=2000)
    {
    Cls();
    }
}
//UserList
//把咨询记录加载入到UserList,函数输入值为咨询所发送的记录UserListAdd(Text)
function UserListAdd(text,ctext,soundstat)
{

var listinfo=text.toString().replace(/ListUsersStart/g, "<label οnmοuseοver=this.style.cursor='hand'; οnclick=window.form1.ToUser.value='").replace(/ListUsersMidA/g,"';document.getElementById('ToUserType').innerHTML='").replace(/ListUsersMid/g, "';onMouseOut=this.style.cursor='default'; >").replace(/ListUsersEnd/g, "</label><br>");
var clistinfo=ctext.toString().replace(/ListUsersStart/g, "<label οnmοuseοver=this.style.cursor='hand'; οnclick=window.form1.ToUser.value='").replace(/ListUsersMidA/g,"';document.getElementById('ToUserType').innerHTML='").replace(/ListUsersMid/g, "';onMouseOut=this.style.cursor='default'; >").replace(/ListUsersEnd/g, "</label><br>");
document.getElementById('UserList').innerHTML=listinfo+'---以上为管理员---<br>'+clistinfo;
if(soundstat==1)
{
Sound.play('sound/come.wav');
}
if(soundstat==2)
{
Sound.play('sound/go.wav');
}
}

//清屏Cls()
function Cls()
{
document.getElementById('scrolldIV').innerHTML="";

}
// 隐藏与显示部分的层1为显示0为隐藏showOrHide(value)
function showOrHide(value) {
    if (value==0) {
        if (document.layers)
           document.layers["Layer1"].visibility='hide';
        else
           document.all["Layer1"].style.visibility='hidden';
   }
   else if (value==1) {
       if (document.layers)
          document.layers["Layer1"].visibility='show';
       else
          document.all["Layer1"].style.visibility='visible';
   }
}
function showOrHide1(value) {
    if (value==0) {
        if (document.layers)
           document.layers["Layer2"].visibility='hide';
        else
           document.all["Layer2"].style.visibility='hidden';
   }
   else if (value==1) {
       if (document.layers)
          document.layers["Layer2"].visibility='show';
       else
          document.all["Layer2"].style.visibility='visible';
   }
}

function showOrHide2(value) {
    if (value==0) {
        if (document.layers)
           document.layers["Layer3"].visibility='hide';
        else
           document.all["Layer3"].style.visibility='hidden';
   }
   else if (value==1) {
       if (document.layers)
          document.layers["Layer3"].visibility='show';
       else
          document.all["Layer3"].style.visibility='visible';
   }
}

//更改字体大小属性的函数changeSize(obj)
function changeSize(obj){
document.getElementById("TextBox1").style.fontSize = obj.value;
window.form1.TextBox1cssText.value=window.form1.TextBox1.style.cssText;

}
//更改字体属性的函数changeFont(obj)
function changeFont(obj){
document.getElementById("TextBox1").style.fontFamily = obj.value;
window.form1.TextBox1cssText.value=window.form1.TextBox1.style.cssText;

}
//更改字体颜色属性的函数changeColors(obj)
function changeColors(obj){
document.getElementById("TextBox1").style.color = obj.value;
window.form1.TextBox1cssText.value=window.form1.TextBox1.style.cssText;

}

//加载表情图象,输入值为图象的路径selImg(text)
function selImg(text){
var newElem = document.createElement("IMG");
newElem.src=text;
newElem.style.cssText="WIDTH:19;HEIGHT:19";

//newElem.οnlοad="javascript:AutoAdjustAtchImgSize(this,600);
//for(var i=0;i<5;i++)
window.form1.TextBox1.appendChild(newElem);

}

//把TextArea(TextBox1)的值赋个隐藏控件(TextBox1Hide)激发button1单击事件
function typechild()
{
if(document.form1.TextBox1.innerHTML.length<1)
 {
     alert("咨询内容不能为空!");
     return false;
 }
 if(document.form1.ToUser.value.length<1)
 {
  alert("咨询对象未选中!");
     return false;
 }

window.form1.TextBox1Hide.value= UrlChange(window.form1.TextBox1.innerHTML);
window.form1.TextBox1cssText.value=window.form1.TextBox1.style.cssText;
document.getElementById('Button1').click();
//alert(window.form1.TextBox1cssText.value);
}
//输入方式onkepress时判断咨询字符是否超过1000
 function regInput(obj, reg, inputStr)
 {  
 
if(document.form1.TextBox1.innerHTML.length>1000 )
 {  
 alert("咨询内容不能超过1000字!");
 var docSel = document.selection.createRange()
  if (docSel.parentElement().tagName != "INPUT") return false  
  oSel = docSel.duplicate()
  oSel.text = ""
  var srcRange = obj.createTextRange()
  oSel.setEndPoint("StartToStart", srcRange)
  var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
  return reg.test(str)
  }
 }
 //输入方式onpaste时判断咨询字符是否超过1000
 function regInputpaste(obj, reg, inputStr)
 {  
 
if(window.clipboardData.getData('text').length+document.form1.TextBox1.innerHTML.length>1000)//粘贴板里的字符长度
 {  
 alert("咨询内容不能超过1000字!");
 var docSel = document.selection.createRange()
  if (docSel.parentElement().tagName != "INPUT") return false  
  oSel = docSel.duplicate()
  oSel.text = ""
  var srcRange = obj.createTextRange()
  oSel.setEndPoint("StartToStart", srcRange)
  var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
  return reg.test(str)
  }
 }

 
//加载字体进入textarea
function fontin()
{
window.form1.TextBox1.style.cssText=window.form1.TextBox1cssText.value;
}
//url转超级连接
//$2表示url值
//把=和"替换

function UrlChange(r)  
{
 var re = /(^|[^<=""])(http:(|)(([/w/+/-~`@:%])+/.)+([/w/./=/?/+/-~`@/':!%#]|(&amp;)|&)+)/ig;
 var rewww=/(^|[^/w/=])((www|bbs)/.(/w)+/.([/w/./=/?/+/-~`@/'!%#]|(&amp;))+)/ig; 
 r = r.replace(re, "FORUELSTARTMA$2IMGEND$2FORUELENDMA").replace(rewww, "FORUELSTARTMA$2IMGEND$2FORUELENDMA").replace(//"/g, '&quot;').replace(/=/g, '&#061;');  
 return r;
}
//播放声音
var Sound = new Object();
Sound.play = function Sound_play(src) {
if (!src) return false;
this.stop();
var elm;
if (typeof document.all != "undefined") {
elm = document.createElement("bgsound");
elm.src = src;
}
else {
elm = document.createElement("object");
elm.setAttribute("data",src);
elm.setAttribute("type","audio/x-wav");
elm.setAttribute("controller","true");
}
document.body.appendChild(elm);
this.elm = elm;
return true;
};

Sound.stop = function Sound_stop() {
if (this.elm) {
this.elm.parentNode.removeChild(this.elm);
this.elm = null;
}
};


</script> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一个简单的 JavaScript 即时通讯代码示例: ``` // 创建 WebSocket 连接 const socket = new WebSocket("ws://localhost:8080"); // 当连接打开时发送消息 socket.addEventListener("open", event => { socket.send("Hello Server!"); }); // 当接收到消息时处理消息 socket.addEventListener("message", event => { console.log("Message from server: ", event.data); }); ``` 这段代码可以连接到一个 WebSocket 服务器,当连接成功后会发送一条消息给服务器。当服务器有消息返回时,会在控制台输出消息的内容。 注意:这只是一个简单的示例代码,实际应用中需要根据具体的需求来进行改进和扩展。 ### 回答2: JS即时通讯对话代码的编写可以借助一些第三方库或框架简化开发过程。下面以常用的WebSocket和jQuery为例,演示如何编写JS即时通讯对话代码,实现基本的聊天功能。 首先,引入相关的库文件或链接: ```html <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> ``` 然后,创建WebSocket连接,并监听连接事件: ```javascript const socket = new WebSocket('wss://example.com') // 请替换为实际的WebSocket服务端地址 // 连接建立成功 socket.onopen = function(event) { console.log('连接已建立') } // 接收到服务端发送的消息 socket.onmessage = function(event) { const message = JSON.parse(event.data) // 处理收到的消息,比如将消息显示在聊天窗口中 console.log('收到消息:', message) } // 连接关闭或出错 socket.onclose = function(event) { console.log('连接已关闭') } ``` 接下来,实现消息的发送和接收: ```javascript // 发送消息 function sendMessage(message) { socket.send(JSON.stringify(message)) } // 监听表单的提交事件,并发送消息 $('#messageForm').submit(function(event) { event.preventDefault() // 阻止表单的默认提交行为 const messageInput = $('#messageInput') const message = messageInput.val() sendMessage({ content: message }) messageInput.val('') // 清空输入框 }) // 发送心跳包以保持长连接 setInterval(function() { sendMessage({ type: 'heartbeat' }) }, 30000) // 每30秒发送一次心跳包 ``` 以上代码演示了基本的发送和接收消息的流程,通过WebSocket实现了与服务端的即时通讯功能。根据具体的场景和需求,还可以扩展其他功能,如用户登录、消息类型区分、显示在线用户等。 ### 回答3: JS 即时通讯的对话代码主要包括客户端和服务端两部分。以下是一个基本的示例: 客户端代码: ```javascript // 创建 WebSocket 连接 const ws = new WebSocket("ws://localhost:8080"); // 请替换为实际的 WebSocket 服务器地址和端口 // 监听 WebSocket 连接成功事件 ws.onopen = () => { console.log("WebSocket 连接已建立"); }; // 监听 WebSocket 接收消息事件 ws.onmessage = (event) => { const message = event.data; console.log("收到消息:", message); }; // 发送消息到服务端 function sendMessage(message) { ws.send(message); console.log("发送消息:", message); } // 关闭 WebSocket 连接 function closeConnection() { ws.close(); console.log("WebSocket 连接已关闭"); } ``` 服务端代码(基于 Node.js 和 WebSocket 库 ws): ```javascript const WebSocket = require("ws"); // 创建 WebSocket 服务器 const wss = new WebSocket.Server({ port: 8080 }); // 请替换为实际的端口 // 监听 WebSocket 连接事件 wss.on("connection", (ws) => { console.log("WebSocket 连接已建立"); // 监听 WebSocket 接收消息事件 ws.on("message", (message) => { console.log("收到消息:", message); // 广播消息给所有连接的客户端 wss.clients.forEach((client) => { if (client.readyState === WebSocket.OPEN) { // 确保连接处于打开状态 client.send(message); } }); }); // 监听 WebSocket 关闭事件 ws.on("close", () => { console.log("WebSocket 连接已关闭"); }); }); ``` 以上代码展示了一个简单的基于 WebSocket 的即时通讯对话系统。客户端使用 JavaScript 的 WebSocket API 建立连接并发送/接收消息,服务端使用 Node.js 的 ws 库创建 WebSocket 服务器,并处理客户端的连接、消息发送和接收等操作。在此基础上,你可以根据实际需求扩展功能,比如添加用户身份验证、消息存储等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨航 AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值