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 :

copier formulaire dans un iframe sous ie


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Points : 37
    Points
    37
    Par défaut copier formulaire dans un iframe sous ie
    bonjour à tous

    je veux copier mon formulaire dans un iframe , ma fonction fonctionne correctement sous firefox mais sous ie ca ne fonctionne pas correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("imageiframe").document.getElementsByTagName("BODY")[0].appendChild(formclone);
    en faite ca me le copie mais à l'exterieur du l'iframe
    si quelqu'un peut m'aider ..

    merci pour votre réponse

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    pourrais tu fournir un exemple un peu plus complet ??
    avec un formulaire simplifié bien entendu ;-)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    ca c mon code de jsp , sachant que je passe par une servlet pour sauvegarder mes images

    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
    28
    29
    30
    31
    32
    33
    34
    35
     
    <div id="content">
    	<h1>Saisie des paramètres </h1>
    	<div class="contentInner">
     
    <form enctype="multipart/form-data"  name="imageform" id="imageform"  method="post" action="<%=linkpath %>SrevletSaveImage"  >
    	<table>
    		<tr style="margin-top:5px">
    			<td style="width:200px;">
    				<label for="enteteImage">Importer une image:</label>
    			</td>
    			<td>
    				<input type="file" name="enteteImage" id="enteteImage" value="" />		
    			</td>
    		</tr>
    	</table>
    </form>
     
    <form name="create" id="create"  method="post" action="<%=linkpath %>module/generRapport.jsp"  >
     
    	<br/>
    <table>
    <tr style="margin-top:5px">
    	<td style="width:200px;"><label for="titreRapport">Titre du rapport :</label></td>
    	<td><input type="text"  name="titreRapport" id="titreRapport" value="" /></td>
    </tr>
     
    </table>	
    </form>
    		<div class="buttons">					
    			<button type="submit" id="suivant" name="suivant" class="positive marginauto disable" onclick=" saveimage();" >Exécuter </button>
    		</div>
    </div>
    </div>
    <iframe id="imageiframe"  width="700" height="100" style="color: red;"/>
    et a partir de la fonction saveImage() ca m'envoie vers une autre fonction qui permet de copier mon formulaire imageform dans l'iframe
    voila ma fonction qui copie le form dans l'iframe


    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
    function uploadImage(id) 
    {
    // id recoit l'id de formulaire 'imageform'
    	var formclone = $(id).cloneNode(true);
     
     
    	if ($("imageiframe").contentDocument)
    	{
    	  alert("mozzilla");
    	  $("imageiframe").contentDocument.getElementsByTagName("BODY")[0].appendChild(formclone);
    	} 
    	else 
    	{
    	   alert("IE");
     
     
    	  var iFrame = document.frames("imageiframe").document.getElementsByTagName("BODY")[0];
    	   iFrame.appendChild(formclone);
     
    	}
    	//formclone.submit();	
    }
    sur mozzila ca me copie bien l'e formulaire dans l'iframe mais sur ie ca le copie à l'exterieur

    je sais que c'est long , mais merci pour votre aide

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    essaye de remplacer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames("imageiframe")
    par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('imageiframe')
    ( en mettant le bon id )

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    pour expliquer un peu l'enchainement des etapes, quand je clique sur le bouton Exécuter ca m'envoie à la fonction javascript saveImage() qui à son tour m'envoie à la fonction uploadImage().
    dans uploadImage() je commence par copier mon formulaire dans l'iframe et apres j'execute ma servlet, et apres j'execute l'action de mon formulaire "create"

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    je l'ai deja fait , ca me le copie toujours à l'exterieur de l'iframe ???

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    en faites je crois que j'ai trouvé, mais je sais pas comment faire pour le resoudre, je crois que dans ma ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var iFrame = document.getElementById('imageiframe').document.getElementsByTagName("BODY")[0];
    je le place sur imageiframe mais apres y'a un "document" ce qui le remet au premier body de mon fichier donc si quelqu'un à une méthode qui marche sous IE pour qu'il reste sur le bon noeud
    merci

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('imageiframe').document.body

  9. #9
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    j'ai essaye ta méthode, ca me fait tujours la meme chose ca me la copie dans le body du document et non dans l'iframe, si ta une autre solution

    la je deviens fou !!!!

  10. #10
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <iframe id="imageiframe"></iframe>
    <script type="text/javascript">
    	var madiv =  document.createElement('div');
    	madiv.style.border = "4px solid red";
    	madiv.innerHTML = "coucou";
    	var test = document.getElementById('imageiframe');
    	test.contentDocument.body.appendChild(madiv);
    	var i = 0;
    </script>
    testé sous FF , ça fonctionne

  11. #11
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    oui ca fonctionne sous mozzilla , on est d'accord mais moi mon probleme c'est IE, meme ton code ca ne fonctionnera pas sous IE

  12. #12
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    scuse je suis a l'ouest je pensais que le soucie était sous FF ...
    ( fatigue du boulot ... )

    je m'en occupe

  13. #13
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    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
    <iframe id="imageiframe"></iframe>
    <script type="text/javascript">
    	var madiv =  document.createElement('div');
    	madiv.style.border = "4px solid red";
    	madiv.innerHTML = "coucou";
    	try {
    		if (test.contentWindow.document) {
     
    			var FirstElement = madiv.firstChild;
    			var v = FirstElement.nodeValue;
    			var tFrame = document.getElementById("imageiframe");
    			var doc = tFrame.contentDocument;
    			if (doc == undefined || doc == null) {
    				doc = tFrame.contentWindow.document;
    				doc.open();
    				doc.write(v);
    				doc.close();
    			}
    		}
    		else{
    			alert("po trouvé ie");
    		}
    	}
    	catch(err){
    		alert(err.message);
    	}
    </script>
    pas réussis avec un appendChild :-/

    tu peux essayer ça sinon : http://bindzus.wordpress.com/2007/12...ts-to-iframes/

Discussions similaires

  1. affichage intempestif dans une iframe sous IE
    Par _vim_ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/11/2009, 17h40
  2. Manipulation formulaire dans une iframe
    Par phpmad dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/05/2007, 17h55
  3. Réponses: 3
    Dernier message: 26/08/2006, 15h55
  4. [iFrame] Formulaire dans un iFrame (submit dehors)
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 08/12/2005, 09h16
  5. Ouvrir un Formulaire dans un control sous-Formulaire
    Par Berny03 dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 12h22

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