|
|
|
|
Bonjour,
Pour un script tout simple, j'aurai besoin d'activer un evenement a la suite d'une requete ajax.
Je m'explique :
d'abord la requête ajax s'effectue sans problème et affiche un petit texte dans une div prévu.
Mais voila je souhaite qu'après environ 2sec se petit texte disparaisse.
Pour mettre cela en place j'utilise :
function empty(id){
document.getElementById(id).innerHTML = '';
}
function timer(id){
setTimeout("empty('"+id+"')",2000);
}
<div id="out_radio" class="out"><b onload="timer('out_radio')">supprimer</b></div>
Configuration: Windows XP Firefox 3.0.1
Répondre à otto
|
J'y est penser mais c pas vrt acceptable exemple:
|
Merci
|
Ma réponse :
|
C'est une classe perso. Les framework comme prototype sont géniaux mais bcp trop lourd.
function getData(data,document,target){
this.data = data;
this.document = document;
this.target = target;
var current = this;
var exp = new RegExp("^http","");
if(exp.test(this.document) == true){
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}
catch (e) {
window.document.write("unable to connect with: " + this.document);
return 0;
}
}
var xhr;
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
xhr = false;
}
}
if (!xhr && typeof XMLHttpRequest != 'undefined'){
xhr = new XMLHttpRequest();
}
xhr.open("POST", this.document, true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
data = "data=" + this.data;
xhr.send(this.data);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4 && xhr.status == 200) {
window.document.getElementById(current.target).innerHTML = xhr.responseText;
}
else{
window.document.getElementById(current.target).innerHTML = "<center>chargement patienter svp ...</center>";
}
}
return 0;
}
|
Sinon ce que tu peux faire, c'est garder ajouter un argument callback à ta fonction getData. De cette manière, tu peux spécifier une fonction callback à appeler lorsque xhr.readyState == 4.
|