Jeg har et lille problem. Jeg ønsker at min lille chat skal vise en status meddelse men den vil ikke opdatere dig. Den opdatere fint chat vinduet, og status bliver og udført hvert sekundt, men den henter bare ikke den nyeste indhold som der tilgengæld gøres i meddelsesvinduet.
Er der nogle som kan se fejlen?
index.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>SupportChat</title>
<script type="text/javascript" src="functions.js"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<iframe src="message.php" width="450" height="150" style="border: 1px solid #0066CC;" scrolling="yes" frameborder="0">
</iframe>
<br>
<div id="status" style="font-size: 11px;"> </div>
<br>
Skriv besked:<br>
<iframe src="send.php" width="450" height="55" scrolling="no" frameborder="0">
</iframe>
<script type="text/javascript">
<!--
//sæt et timeout der sætter hele processen igang
setTimeout ("GetStatus();", 1000);
-->
</script>
</body>
</html>
message.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>New document</title>
<meta name="generator" content="IO SoftGame WebType">
<script type="text/javascript" src="functions.js"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
<style>
body{
background-color: #FFFFFF;
}
</style>
<script type="text/javascript">
<!--
//sæt et timeout der sætter hele processen igang
setTimeout ("GetMessage();", 1000);
-->
</script>
</head>
<body>
<base target="_blank">
<div id="message"></div>
<div id="new" style="display: none;"></div>
</body>
</html>
functions.js:
<!--
var respons = "";
var xmlHttp
function GetMessage()
{
get("load.php");
var old = document.getElementById("message").innerHTML;
document.getElementById("new").innerHTML = respons;
if(old != document.getElementById("new").innerHTML)
{
document.getElementById("message").innerHTML = respons;
parent.frames[0].scrollTo(0,9999999);
//document.getElementById("message").scrollTop = document.getElementById("message").scrollHeight;
}
document.getElementById("new").innerHTML = "";
setTimeout ("GetMessage();", 1000);
}
function GetStatus()
{
get("status.php");
document.getElementById("status").innerHTML = respons;
setTimeout ("GetStatus();", 1000);
}
function get(url)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Din browser understøtter ikke denne chat.");
return;
}
//hent tekst fra filen load.php
//var url="load.php";
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
//skriv tekst fra hent.asp til elementet "meddelelse" og sæt et timeout der udfører denne funktion igen om 1 sekund
/*var old = document.getElementById("message").innerHTML;
document.getElementById("new").innerHTML = xmlHttp.responseText;
if(old != document.getElementById("new").innerHTML)
{
document.getElementById("message").innerHTML = xmlHttp.responseText;
parent.frames[0].scrollTo(0,9999999);
//document.getElementById("message").scrollTop = document.getElementById("message").scrollHeight;
}
document.getElementById("new").innerHTML = "";
*/
respons = xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
-->
Indlæg senest redigeret d. 13.10.2007 15:49 af Bruger #8254