J'ai implémenté un contrôle Web .NET qui utilise la structure de rappel implémentée dans ASP.Net 2.0. C'est un contrôle d'autodropdown, et cela fonctionne correctement dans IE 6.0/7.0 et Google Chrome. Voici la fonction de rappel pertinente:Les callbacks ASP.NET 2.0 ne fonctionnent pas correctement dans Firefox
function ReceiveServerData(args, context)
{
document.getElementById(context).style.zIndex = 300;
document.getElementById(context).style.visibility = 'visible';
document.getElementById(context).innerHTML = args;
fixHover(context);
}
Dans Firefox, « args » est toujours les mêmes données, de sorte que le innerHTML du <div>
qui est l'affichage de mon menu déroulant affiche toujours les mêmes éléments. J'ai doublechecked mon code côté client, et les bonnes informations sont envoyées client-> serveur et en retour serveur-> client.
Il convient de noter, dans la fonction « WebForm_DoCallback » créée par le framework .NET, l'extrait suivant devient appelé:
if (setRequestHeaderMethodExists) {
xmlRequest.onreadystatechange = WebForm_CallbackComplete;
callback.xmlRequest = xmlRequest;
xmlRequest.open("POST", theForm.action, true);
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlRequest.send(postData);
return;
}
et la fonction de rappel ReceiveServerData est appelée à la fois sur xmlRequest.open("POST", theForm.action, true);
et xmlRequest.send(postData);
. Je me demande si cela cause une erreur, mais je suis à la fin de mes compétences de débogage.
Modifié pour ajouter - ReceiveServerData n'est pas appelé deux fois la première fois que j'utilise la liste déroulante - en fait, la liste déroulante fonctionne correctement pour la toute première frappe. Il arrête de fonctionner et double le rappel avec les anciennes données de retour, après la première frappe.