⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chat.htm

📁 === === === === JavaScript经典源代码收集
💻 HTM
字号:
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
<title>基于HTTP的server-push,长连接comet聊天模式</title>
<body>
记录回显区:
<div id=con></div>
发言区:
<br>昵称<input type=INPUT TYPE="text" NAME="" id="nick" value="小谢"><br>
<input TYPE="text" NAME="size" style='width:400px;height:40px;font-size:20px;' onkeydown="if(event.keyCode==13)sendmessage(this.value)" value="测试发言"><br><input type=button onclick=sendmessage(this.previousSibling.previousSibling.value) value=发送>
<br>有个缺陷就是会超时,一段时间后htmlfile控件就拒绝执行iframe里的东西了,目前还不知道如何解决,如果各位有好的建议,请告诉我
<script language=javascript>
function Ajax(){var xmlhttp = false;
/*@cc_on
   @if (@_jscript_version >= 5)
      try {      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP")
      }
      catch (e){         try {         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
         }
         catch (e2){         xmlhttp = false
         }
      }
   @end
@*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{xmlhttp = new XMLHttpRequest()}
 this.open = function(url, method, feedback,process, arg,asyc)
  {	
    if (!xmlhttp) return false;
	var asy;
	if(asyc==null){asy=true;}
	else{asy=false;}
	if(arguments.length==2){feedback=method;method="post";}
	method = method.toUpperCase();
	try{xmlhttp.setRequestHeader("Cache-Control: no-store, no-cache, must-revalidate");
		xmlhttp.setRequestHeader("Connection","close");}
		catch(e){}
    try {      if (method == "GET")
      {        xmlhttp.open(method, url+"?"+arg,asy);
        arg = "";
      }
      else
      {        xmlhttp.open(method, url, asy);
        try{         xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		}
		catch(e){}
      }
	  xmlhttp.send(arg);
      xmlhttp.onreadystatechange = function(){        if (xmlhttp.readyState == 4)
        {
		  
		  if(xmlhttp.status==200||xmlhttp.status==0){			  try{var json=eval(xmlhttp.responseText);}
			  catch(e){var json="not support";}
			  try{feedback(xmlhttp.responseText,xmlhttp,json);}catch(e){}}
			  else{try{feedback(xmlhttp.status);}catch(e){}}
          }
		  else
		  {			  try{process(xmlhttp.readyState);}catch(e){}}
		  
		  };
      
    }
    catch(z) { return false; }
    return true;
  };
   return this;
};
var fdsafdsfsafsdffwefdf=new Ajax();
function Post(url,done,load,arg){
if(arguments.length==3)
	{var arg=load;
	var load=null;
}

fdsafdsfsafsdffwefdf.open(url,"POST",done,load,arg);
}
nicks="游客"+Math.random().toString();
function sendmessage(v)
{
if(document.getElementById("nick").value!="")
{nicks=document.getElementById("nick").value;}
Post("say.php",function(){},"userName="+nicks+"&message="+v.fontcolor("green"));
}
function getmessage(c)
{
//var data=eval(c);
document.getElementById("con").innerHTML += c+"<br>";

}


function pushdata (url)
{
 var ie = (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
 var currentDomain = "http://"+window.location.host+"/"; 
 var dataStreamUrl = currentDomain+url;
 if(!ie)
 {
 var ifm=document.createElement("iframe");
 ifm.src=url;
 ifm.style.display="none";
 document.body.appendChild(ifm);
 }
 else
 {

 fbajax= new ActiveXObject("htmlfile");
 fbajax.Charset="utf-8";
  // make sure it's really scriptable
  fbajax.open();
  fbajax.write("<html>");
  fbajax.write("<script>document.domain='"+currentDomain+"';<\/script>");
  fbajax.write("</html>");
  fbajax.close();
  // set the iframe up to call the server for data
  var ifrDiv = fbajax.createElement("div");
  fbajax.appendChild(ifrDiv);
  fbajax.parentWindow.getmessage=getmessage;
  ifrDiv.innerHTML = "<iframe onload=\"this.src='"+dataStreamUrl+"'\" src='"+dataStreamUrl+"'></iframe>";
 }
}
pushdata ("javascript/pushit.php");
</script>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -