par
Shrell » 05 juin 2007, 16:58
La méthode apply() fait ce que tu veux
je m'en sers dans ma fonction d'appel AJAX pour appeler la fonction adéquate pour traiter les retours et lui passer des arguments.
Code : Tout sélectionner
function loadXMLDoc(url,fonction) {
req = false;
// branch for native XMLHttpRequest object
if(window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}
if(req) {
var argumentsAPasser = new Array();
if(arguments.length > 2) {
for(var i = 2; i < arguments.length; i++) {
argumentsAPasser.push(arguments[i]);
}
}
req.onreadystatechange = function() { fonction.apply(null, argumentsAPasser); };
req.open("GET", url, true);
req.send(null);
}
}
A appeler avec un code du style:
<a href="javascript: loadXMLDoc('monfichier.php', traitement, 'argument1', 'argument2');">cliquez ici</a>
A toi de l'adapter à tes besoins

La méthode apply() fait ce que tu veux
je m'en sers dans ma fonction d'appel AJAX pour appeler la fonction adéquate pour traiter les retours et lui passer des arguments.
[code]function loadXMLDoc(url,fonction) {
req = false;
// branch for native XMLHttpRequest object
if(window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}
if(req) {
var argumentsAPasser = new Array();
if(arguments.length > 2) {
for(var i = 2; i < arguments.length; i++) {
argumentsAPasser.push(arguments[i]);
}
}
req.onreadystatechange = function() { fonction.apply(null, argumentsAPasser); };
req.open("GET", url, true);
req.send(null);
}
}
[/code]
A appeler avec un code du style:
[php]<a href="javascript: loadXMLDoc('monfichier.php', traitement, 'argument1', 'argument2');">cliquez ici</a>[/php]
A toi de l'adapter à tes besoins ;)