modifier valeur select fenetre parente

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : modifier valeur select fenetre parente

par mcorgnet » 20 mai 2008, 11:02

C'est un peu contraire à tout ce que préconisent les autres sites, pourtant ... De ce que j'en ai lu, ils disent d'utiliser la méthode add, qui est native et faite pour ça.

Je vais néanmoins tenter avec appendChild, on verra.

Edit : Testé avec la méthode appendChild, ça fonctionne toujours sous firefox, mais pas sous IE. Il doit y avoir quelque chose avec la fenêtre parente, mais je ne sais pas quoi ...

Edit (2) :

J'ai tenté quelques modifs, en ajoutant notamment un textarea, et en modifiant sa valeur depuis la popup, ça tourne. Le code :

Code : Tout sélectionner

<script type="text/javascript"> var testArea = window.opener.document.getElementById('test'); testArea.value = 'champ modifie'; var objSelect = window.opener.document.getElementById('secretaire'); var dcm = document.createElement('option'); dcm.text = 'corgnet corgnet'; dcm.value = 60; objSelect.add(dcm); // IE only try { objSelect.add(dcm, null); // standards compliant alert('ff'); } catch(ex) { objSelect.add(dcm); // IE only alert('ie'); } window.top.close(); </script>
Par contre, pour le select, ça ne fonctionne toujours pas ...

Edit (3) :

Après beaucoup de recherches, la réponse se trouve ici :

http://forum.hardware.fr/hfr/Programmat ... 2673_1.htm

Il faut appeler une fonction située sur la fenêtre mère, pas la fenêtre enfant. Et ça tourne.

Merci à vous.

par Cyrano » 20 mai 2008, 10:58

Au lieu de la méthode add, utilise plutôt appendChild:

Code : Tout sélectionner

objSelect.appendChild(dcm);
et tu n'as plus besoin du try/catch. Si tu as besoin de connaître le navigateur, utilise une fonction à part basée sur l'objet natif Navigator, ce sera plus efficace à mon avis.

modifier valeur select fenetre parente

par mcorgnet » 20 mai 2008, 10:22

Bonjour,

J'ai un petit bug sous IE / javascript (fallait s'y attendre ...)

Je n'arrive pas à le corriger.

But :

j'appelle une popup permettant des saisies à l'utilisateur, et je tente d'écrire le résultat des saisies dans un champ select de la fenêtre parente.

Le select est bien détecté, mais l'écriture ne fonctionne pas :

Code : Tout sélectionner

var objSelect = window.opener.document.getElementById('secretaire'); var dcm = document.createElement('option'); dcm.text = 'test'; dcm.value = 10; try { objSelect.add(dcm, null); // standards compliant alert('ff'); } catch(ex) { objSelect.add(dcm); // IE only alert('ie'); } window.top.close();
Aucune erreur attrapée, mes alert js ne renvoient rien ... J'ai essayé pas mal de choses, j'avoue être dépassé.

Merci de votre aide.