Je travaille sur un projet pour lequel je dois faire un développement jsp et utiliser du javascript. Le client travaille sous Internet Explorer 6.

Une liste de documents est affichée à l'écran, documents que l'utilisateur doit pouvoir télécharger en cliquant sur un bouton "télécharger tout".

Mon développement consiste donc, quand l'utilisateur clique sur "télécharger tout", à ajouter un champ hidden avec javascript dans un formulaire HTML, et en faire un submit pour envoyer ça en POST à une page JSP.

Je ne connais pas bien javascript et en faisant des recherches, j'ai réussi à faire un code qui marche sur google chrome ( que j'ai utilisé car il est pratique pour le debuggage)... Seulement voilà, ça marche pas sur IE 6.

Mon code javascript est le suivant :

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
26
27
 
function downloadAllDocuments(theForm, tdpInstance) {
 
        ...
 
	if(docSelected) {
		theForm.enctype = "application/x-www-form-urlencoded";
		theForm.target = "_BLANK";
		if (!theForm.selectedDocs){
			theForm.insertAdjacentHTML('BeforeEnd','<input type="hidden" name="selectedDocs" id="selectedDocs" value="tttttttttttttttttttttttttttttttttttttttttttt'+selectedDocs+'">');
		}
 
	 	if (tdpInstance == "local") { // Local instance
			theForm.action = "javascript:popup(\"http://${other.tt.host.dns}:${other.tt.apache.port}/${other.tt.wdc.webapp}/netmarkets/jsp/ext/MassDownloadFromDoc.jsp\")";
	 	} else { // TDP instance
			theForm.action = "http://p75.scorp.local:8090/tdp/netmarkets/jsp/ext/test.jsp";
	 	}
 
		alert("enctype : " + document.DocumentStructureInformationBody.enctype+" ,target : " + document.DocumentStructureInformationBody.target);
		alert("selectedDocs " + theForm.selectedDocs.value);
		// Call the form's action
		theForm.submit();
	}
	else {
		alert("There is no document to download.");
	}
}
Comme vous l'aurez compris, selectedDocs est la variable dans laquelle il y a la liste de mes documents à télécharger. J'initialise mon enctype comme je dois, je demande à ouvrir dans une autre fenêtre et j'ajoute mon champs à envoyer par POST.
Les 2 alert de la fin servent juste pour le débuggage, et elles m'affichent bien les valeurs voulues ( document.DocumentStructureInformationBody est le nom de mon formulaire dans la page, et theForm c'est le formulaire passé en paramètre... dans mon cas, c'est le même ), que ce soit sous google chrome ou sous internet explorer 6... autrement dit les valeurs enctype et target sont à la bonne valeur, et selectedDocs contient bien ma liste de documents :
ttttttttttttttttttttttttttttttttttttttttttttOR:wt.doc.WTDocument:4233848;;;qqqOR:wt.doc.WTDocument:4233783;;;qqqOR:wt.doc.WTDocument:10959209;;;qqqOR:wt.doc.WTDocument:10948723;;;qqqOR:wt.doc.WTDocument:19518224;;;qqqOR:wt.doc.WTDocument:19518239
ma JSP est très simple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
AVANT<BR>
selectedDocs 	: "<%= request.getParameter("selectedDocs")%>"<BR>
nombre params	: "<%= request.getParameterMap().size()%>"<BR> 
APRES<BR>
résultat sous google chrome :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
AVANT
selectedDocs : "ttttttttttttttttttttttttttttttttttttttttttttOR:wt.doc.WTDocument:4233848;;;qqqOR:wt.doc.WTDocument:4233783;;;qqqOR:wt.doc.WTDocument:10959209;;;qqqOR:wt.doc.WTDocument:10948723;;;qqqOR:wt.doc.WTDocument:19518224;;;qqqOR:wt.doc.WTDocument:19518239"
nombre params	: "1"
APRES
résultat sou internet explorer 6 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
AVANT
selectedDocs : "null"
nombre params : "0"
APRES
Voilà il doit surement y avoir une partie du code qui n'est pas compatible avec internet explorer 6, mais je commence à sécher depuis que je suis sur le problème... du coup n'hésiter pas à me faire part de vos idées !!

Merci d'avance !