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 :
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.
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."); } }
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 :ma JSP est très simple :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
résultat sous google chrome :
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 sou internet explorer 6 :
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
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 !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 AVANT selectedDocs : "null" nombre params : "0" APRES
Merci d'avance !
Partager