IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Javascript et internet explorer 6.


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut Javascript et internet explorer 6.
    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 !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Sujet déjà traité moultes fois...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    theForm.insertAdjacentHTML('BeforeEnd','<input type="hidden" name="selectedDocs" id="selectedDocs" value="tttttttttttttttttttttttttttttttttttttttttttt'+selectedDocs+'">');
    Pour IE, l'attribut name est readonly, tu ne peux donc pas l'attribuer par script, or quand tu appelles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("selectedDocs " + theForm.selectedDocs.value);
    puis le submit, tu fais référence au name de l'input... donc pas bon
    Voir à ce sujet la contribution de SpaceFrog !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    Merci pour ta réponse

    En utilisant les fonctions de SpaceFrog (Que je remercie aussi par la même occasion), j'ai pu remplacer mon code par :

    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
     
    function downloadAllDocuments(theForm, tdpInstance) {
    	...
     
    	if(docSelected) {
    		if (!document.getElementById("formToSend")){
    			var action = '';
    			if (tdpInstance == "local") { // Local instance
    				action = "http://${other.tt.host.dns}:${other.tt.apache.port}/${other.tt.wdc.webapp}/netmarkets/jsp/ext/MassDownloadFromDoc.jsp";
    			} else { // TDP instance
    				action = "http://${tt.host.dns}:${tt.apache.port}/${tt.wdc.webapp}/netmarkets/jsp/ext/MassDownloadFromDoc.jsp";
    			}
    			var formToSend=$C( {"obj":"form","target":"_BLANK","name":"formToSend","id":"formToSend","method":"post","action":action} );
    			var myinput=$C({"obj":"input","type":"hidden","name":"selectedDocs", "value":selectedDocs } );
    			$Close(formToSend);
    		}
    		var formToSend	= document.getElementById("formToSend");
    		formToSend.submit();
    	}
    	else {
    		alert("There is no document to download.");
    	} 
    }
    qui est compris par IE 6...

    Merci encore et à plus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. jQuery, javascript et internet explorer
    Par <romain/> dans le forum jQuery
    Réponses: 5
    Dernier message: 08/08/2008, 21h42
  2. profiler javascript pour internet explorer
    Par pioug dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2008, 14h38
  3. Incompatibilité entre Javascript et Internet Explorer 7
    Par zizoux5 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/08/2007, 19h36
  4. [PHP-JS] Session, Javascript et Internet Explorer
    Par EggY14 dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2006, 12h46
  5. problème javascript avec internet explorer
    Par vidocq dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/04/2006, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo