Bonjour,

Sur mon site OnPage, j'ai mis en place un chat.

On y accède on cliquant sur lien qui appelle une fonction affMessage() qui rend visible ou masque des div.
dans ce cas c'est le chat qui est affiché.

L'internaute clique sur une des photos disponibles sur le bord gauche et des messages (les messages en rapports avec la photo et les messages que l'utilisateur en cours écris) sont affichés dans un div.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<div id='message'></div>

puis il y a un div pour répondre
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<textarea id="rep"></textarea>

Lorsque l'utilisateur réponds (donc qu'il a mis des informations dans le textarea, il clique sur le bouton répondre:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<input type="button" value="répondre" onClick="repondre('<%=rs("Photo1")%>', document.getElementById('recup').value, document.getElementById('PM').value)">

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function repondre(pho1, recup, PM){		
 
			var objxhr = xhr_connect()
			if (objxhr){
				objxhr.onreadystatechange = function(){
					if (objxhr.readyState == 4) {
						if (objxhr.status == 200) {
							//var retour = objxhr.responseText																			
							document.location = "indexRIE.asp?miseA=oui" + "&r=" + recup + "&PM=" + PM
						}
					}
				}
			}	
 
			R = document.getElementById("rep")	
			Rtext = encodeURIComponent(document.getElementById("rep").value)
			RID = encodeURIComponent(document.getElementById("recup").value)			
 
			var str = "IDmembres="+RID+"&pho1="+pho1+"&Rtext="+Rtext
			objxhr.open("Post", "../reponse.asp")
			objxhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			objxhr.send(str)
 
			R.value = ""
		}
le fichier reponse.asp enregistre la réponse dans une base de données

puis lorsque c'est terminé je recharge la même page avec des paramètres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
document.location = "indexRIE.asp?miseA=oui" + "&r=" + recup + "&PM=" + PM
et je test miseA:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
if miseA = "oui" then %>
	<script>	
		affMessage(); 	
		PM = document.getElementById("PM").value
		recup = document.getElementById("recup").value		
		loadFile("<%=PMa%>","<%=rs("ID")%>","<%=r%>");
	</script><%
end if
la fontion loadFile permet de récupérer le contenu des messages et de les assigner au div ayant l'ID message:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
	function loadFile(arg, id, arg2) {    
 
				 recup = document.getElementById("recup")
				 recup.value = arg2
 
				 PM = document.getElementById("PM")
				 PM.value = arg			
 
		          var xhr = new XMLHttpRequest();    
 
		          var value1 = encodeURIComponent(arg);
		          var value2 = encodeURIComponent(id);
		          var value3 = encodeURIComponent(arg2);
				  xhr.open('GET', 'messagesXML.asp?param1=' + value1 + '&id=' + value2 + '&id2=' + value3);
 
		          message = document.getElementById("message")
		          xhr.onreadystatechange = function() { 
		              if (xhr.readyState == 4 && xhr.status == 200) { 
		                  message.innerHTML = '<span>' + xhr.responseText + '</span>'; 
		                  message.style.display = "block"		                                   
		              }
		          }
		          xhr.send(null); 
		      }
Ok, voici le fonctionnement général !

Maintenant, j'ai le même problème qu'avec mon message précèdent : ça fonctionne sur chrome (enregistrement du message, puis rechargement dans le div ayant l'ID message).

Dans Internet Explorer le message est enregistré mais le div n'est pas mis à jour.......

J'arrive à le mettre à jours si je clique sur le bouton actualiser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<script>						
						function raf(){							
							location.reload(true)							
						}														
					</script>
 
 
 
<input type="button" id="reac" value="actualiser" onClick="raf()">
Lâ idem, j'aimerai supprimer dans Internet Explorer ce bouton actualiser

J'ai mis les fonctions XMLhttpRequest dans le header, j'ai essayé avec l'envoi synchrone (false) ou asynchrone (true) mais je ne suis pas arrivé au résultat recherché (c'est à dire à la mise à jour du div (id="message").

merci d'avance pour vos réponses !