Bonjour tout le monde,
Voilà, j'ai un site intranet qui fonctionne très bien sous IE5 mais plus sous IE6 (environnement technique : Windows 2000 + IIS 5 + ASP).
Après avoir longuement cherché, j'ai finalement fini par identifier le problème : c'est la commande Request.Form("nom_du_champ") qui ne fonctionne pas sous IE6 (je cherche à récupérer les informations "submitées" par un formulaire).
Ci-dessous le code de ma page de test qui utilise exactement la même méthode que le site (j'utilise une méthode hybride avec le formulaire pour toutes les infos de la page et un passage d'info par la barre d'adresse pour le champ actuel modifié car c'est nécessaire pourle traitement : recherche dans une base de données si besoin pour enrichir d'autres champs,...).
Donc sous IE5, lorsque l'on modifie un champ (et appui sur Tab par exemple) la page se recharge et donne le focus au champ suivant tout en ayant conservé la valeur de l'autre champ, alors que sous IE6 ce dernier est effacé (à cause du Request.Form qui ramène une valeur vide).
Je pense que c'est une "sécurité" de IE6 (on aura tout vu...) qui bloque la requête HTTP, mais je n'ai aucune idée de pourquoi...
D'avance, merci beaucoup à ceux qui auront une info à ce sujet !
--> merci de m'écrire à : sebastien.rochefort@groupe-mma.fr
PS : Je vous vois tous venir pour me dire de jeter IE à la poubelle et d'utiliser Mozilla, mais je n'ai pas le choix, c'est pas moi qui décide...
<% @Language=VBScript %>
<% Option Explicit %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>page de test</title>
</head>
<SCRIPT LANGUAGE="JavaScript">
function InitFocus()
{
if (document.FrontPage_Form1.conf.value == "" )
{
document.forms["FrontPage_Form1"].item('conf').focus();
}
else
{
document.forms["FrontPage_Form1"].item('nomInter').focus();
}
}
function RechargePage(formulaire, champ)
{
document.FrontPage_Form1.action='test.asp';
document.FrontPage_Form1.submit();
NouvelleUrl = "test.asp?" + champ + "=" + formulaire.item(champ).value;
document.location.href = NouvelleUrl;
}
</SCRIPT>
<body onLoad="InitFocus()">
<%
Session("valeurConf") = Ucase(Request.Form("Conf"))
Session("valeurNomInter") = Ucase(Request.Form("NomInter"))
if Request("conf")<>"" then
Session("valeurConf") = Ucase(Request("Conf"))
end if
if Request("nomInter")<>"" then
Session("valeurNomInter") = Ucase(Request("nomInter"))
end if
%>
<form method="POST" action="test2.asp" name="FrontPage_Form1">
Numéro de configuration :
<input type="text" name="conf" size="20" maxlength="20" value="<%=Session("valeurConf")%>" onChange="RechargePage(this.form, 'conf')" style="font-size: 10 pt; text-transform: uppercase; font-weight: bold" tabindex="1">
<BR>
Nom de l'intervenant :
<input type="text" name="nomInter" size="20" maxlength="20" value="<%=Session("valeurNomInter")%>" onChange="RechargePage(this.form, 'nomInter')" style="font-size: 10 pt; text-transform: uppercase; font-weight: bold" tabindex="2">
</form>
</body>
</html>
Partager