Ciao.
Questo snippet funziona con IE
ma su FF non vede la variabile data:
Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript" type="text/JavaScript">
function DOMize(element)
{
/////
/// DOMize function by andr3a
////
if(!element.addEventListener)
{
element.addEventListener=function(event,listener)
{
event="on"+event;
if(this.attachEvent)
{
this.attachEvent(event,listener);
}
else
{
this[event]=listener;
}
}
};
if(!element.removeEventListener)
{
element.removeEventListener=function(event,listener)
{
event="on"+event;
if(this.detachEvent)
{
this.detachEvent(event,listener);
}
else
{
delete this[event];
}
}
};
return element;
};
function XmlHttpRequest()
{
var Request = null;
try {
Request = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
Request = new ActiveXObject("Microsoft.XMLHTTP");
} catch(oc) {
Request = null;
}
}
if (!Request && typeof(XMLHttpRequest) != "undefined")
{
Request = new XMLHttpRequest();
}
if (!Request)
{
alert("Failed to create new ajax request.");
}
return Request;
};
var RequestSend = XmlHttpRequest();
function sendMessage(){
var user="Pippo";
var message = document.getElementById("userInput").value;
if(message.length>100)
{
message=message.substring(0,100)
}
if (RequestSend.readyState == 4 || RequestSend.readyState == 0)
{
var message = encodeURI(message);
var user = encodeURI(user);
var Content = "user="+user+"&message="+message;
// open socket connection
RequestSend.open("POST","sendchatdata.php",true);
// set form http header
RequestSend.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
RequestSend.setRequestHeader("Content-length", Content.length);
RequestSend.setRequestHeader("Connection", "close");
RequestSend.send(Content);
RequestSend.onreadystatechange=senderStatusChecker;
}
};
function senderStatusChecker()
{
// if request is completed
if(RequestSend.readyState==4)
{
// if status == 200 display text file
if(RequestSend.status==200)
{
data=RequestSend.responseText;
displayChatData();
}
else
{
alert('Failed to get response :'+ receiveReq.statusText);
}
}
}
function displayChatData()
{
///////////////////////
// SU IE DATA E' OK SU FF NON LA VEDE
/////////////////////
alert("pippo");
alert(data);
var chat = document.createElement("
");
chat.setAttribute("id","chat");
var chatOutPut = document.createTextNode(data);
chat.appendChild(chatOutPut);
if(check = document.getElementById("chat"))
{
document.getElementById("container").removeChild(check);
}
document.getElementById("container").appendChild(chat);
check = document.getElementById("
");
}
window.onload = function()
{
var send = document.getElementById("send");
DOMize(send).addEventListener("click",sendMessage, false);
}
</script>
</head>
<body>
<form action="" method="post" name="frm">
<input id="userInput" name="userInput" type="text">
<input id="send" name="send" type="button">
</form>
<div id="container"></div>
</body>
</html>
Non riesco proprio a capire cosa c'è
di sbagliato scope (ma data è globale )
o cos'altro
e
e ci aggiungo anche un grossisimo PP