📄 chat.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 + -