Refresh function med lidt ASP
Jeg har følgende kode, som burde gå ind og hente beskeder i en chat, og skrive dem i i DIV.Jeg synes at have fulgt koden fra a til b, men den går galt et sted, jeg får ikke min besked vist i chatvinduet.
Får heller ingen script fejl af browseren.
Nogen der kan fange fejlen..?
FRAMESET:
<frameset rows="*,94" framespacing="0" border="0" frameborder="0">
<frameset cols="*,160">
<frame name="messages" src="window.asp?id=<%=strRumID%>">
<frameset rows="80%,20%">
<frame name="users" src="users.asp?id=<%=strRumID%>" scrolling=auto>
<frame name="rooms" src="rooms.asp?id=<%=strRumID%>" scrolling=no>
</frameset>
</frameset>
<frame name="message" src="message.asp?id=<%=strRumID%>" scrolling=no noresize="noresize">
<noframes>
<body>
</body>
</noframes>
</frameset>
WINDOW:
<html>
<head>
<title></title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/chat.css">
<script language="JavaScript1.2" type="text/javascript" src="js/update.js"></script>
<script language="JavaScript1.2" type="text/javascript">
function init() {
refreshFunction = 'executeRequest(\'action=refresh\')';
eval(refreshFunction);
setInterval(refreshFunction, 3000);
}
</script>
</head>
<body class="messages" onload="init()">
<div class="hdr">Chatrum </div>
<div class="msgs" id="messages" name="messages"></div>
</body>
</html>
UPDATE.JS:
var SERVER_CONTROLLER = "actions.asp";
/**
* Executes a server request by patching the header request in the
* current document. The parameters specified will be attached to
* the request.
*
*/
function executeRequest(params) {
var head = document.getElementsByTagName('head').item(0);
var old = document.getElementById('lastLoadedCmds');
if (old) head.removeChild(old);
script = document.createElement('script');
parameters = new String(params).split(',');
var scriptUrl = SERVER_CONTROLLER ;
for (var i = 0; i < parameters.length; i++) {
scriptUrl += "&" + parameters[i];
}
script.src = scriptUrl;
script.type = 'text/javascript';
script.defer = true;
script.id = 'lastLoadedCmds';
void(head.appendChild(script));
} // > function executeRequest(...)
/**
* Dynamically updates the content of a frame.
*
*/
function update(frame, id, html) {
var doc = eval(frame + '.document');
if (doc.layers) {
var l = doc[id];
l.document.open();
l.document.write(html);
l.document.close();
} else if (doc.all && doc.all[id]) {
doc.all[id].innerHTML = html;
} else if (doc.createRange) {
var l = doc.getElementById(id);
var r = doc.createRange();
while (l.hasChildNodes()) {
l.removeChild(l.lastChild);
}
r.setStartAfter(l);
var docFrag = r.createContextualFragment(html);
l.appendChild(docFrag);
}
} // > function update(...)
function updateMessages(id, html) {
update('parent.messages', id, html);
}
ACTIONS.ASP
If (Request("action") = "refresh") Then
Response.Write("updateMessages('messages', '" & jsEncode(getMessages(1, 4, True)) & "');")
'Response.Write("scrollToBottom('" & jsBool(Not NEWEST_MESSAGE_IN_TOP) & "');")
End If
Function getMessages(roomId, userId, topToBottomOrder)
getMessages = "Denne besked skal vises på chatten."
End Function
