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 :

Renseignement pop-up par fenêtre apellante - Firefox / IE


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    Par défaut Renseignement pop-up par fenêtre apellante - Firefox / IE
    Salut,

    Dans le lien ci-dessous, je renseigne un champ du formulaire du pop-up ouvert par onclick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <a href="#" 
    onClick="
    fen_audiotel=window.open('audiotelCB1.php', 'CBAllopass', 'width=400, height=350');
    setTimeout('fen_audiotel.document.f_audiotel.DATAS.value=4;', 1000);
    ">
    CB Allopass
    </a>
    Ce script fonctionne bien sous firefox, mais pas sous IE ou j'ai l'erreur :
    fen_audiotel est indéfinie.

    Le settimeout est indispensable car le pop-up doit être chargé pour que le champ DATAS soit présent.

    Si quelqu'un à une idée...

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var fen_audiotel=window.open('audiotelCB1.php', 'CBAllopass', 'width=400, height=350'); 
    fen_audiotel.onload = function(){
        document.f_audiotel.DATAS.value=4;
    }
    ta var fen_audiotel est une var locale a la fonction executée sur le onclick.
    le setTimeout se declenche en dehors de ta fonction donc pas de variable.

    autre solution, mettre ton window.open et on setTiemout dans une fonction externe entre des balises script et tu declare le var fen_audiotel avant la fonction.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    Par défaut
    Je suis d'accord pour le var, je l'avais enlevé, d'ailleurs, entre temps dans le message, mais tu a été plus rapide...

    1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script>
    var fen_audiotel;
    </script>
     
    echo "<a href=\"#\" onClick=\"" .
     	"fen_audiotel=window.open('audiotel$row->tranche.php', 'Audiotel', 'width=400, height=350');" .
    	"fen_audiotel.onload = function(){
                 fen_audiotel.document.f_audiotel.DATAS.value=$id_membre;
    	}" .
      	"\">" .
    	"Audiotel</a>&nbsp;";
    j'ai donc déclaré fen_audiotel entre des balises script, puis dans le onclick j'ai mis le fen_audiotel.onload (plus fiable que le settimeout, merci !)

    Je t'ai mis mon code natif, en php : le 4 d'avant est en fait une variable que je pâsse au onclick.

    Cela fonctionne bien sous firefox.
    Sous IE je n'ai pas d'erreur mais le champ datas n'est pas renseigné.

    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script>
    var fen_audiotel;
    function pop_audiotel (tranche,id_membre){
    	nom_fen='audiotel'+tranche+'.php';
     
    	fen_audiotel=window.open(nom_fen, 'Audiotel', 'width=400, height=350');
     
    	fen_audiotel.onload = function(){
        		fen_audiotel.document.f_audiotel.DATAS.value=id_membre;
    	}
    }
    </script>
    Dans cette deuxième solution, j'appel la fonction ci-dessus sur le onclick, avec les deux paramètres.
    J'ai le même résultat que dans 1) à savoir :
    Cela fonctionne bien sous firefox.
    Sous IE je n'ai pas d'erreur mais le champ datas n'est pas renseigné.

    Pas d'autre idée...

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    essayes en mettant un id a ton champ et en faisant un document.getElementById pour le récupérer.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    Par défaut
    on peut changer la value d'un input par getelementbyid ?, je vois pas comment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fen_audiotel.document.getElementById['_datas'].value=id_membre
    marche pas

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fen_audiotel.document.getElementById('_datas').value=id_membre;
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    Par défaut
    honte à moi !!!

    donc ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Erreur : fen_audiotel.document.getElementById("_datas") has no properties
    Fichier source : http://localhost/utileo/membre/commande.php#
    Ligne : 119

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    t as bien mis un id='_datas' dans ton input ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    Par défaut
    je m'étais trompé de fichier, désolé, pas en forme le garçon !

    Je n'ai donc plus d'erreur mais datas n'est toujours pas renseigné sous IE, sous firefox oui.

    Lorsque je positionne une alert dans la fonction, elle apparait sous firefox, mais pas sous IE, comme si IE ne voyait pas l'evenement onload

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function pop_audiotel (tranche,id_membre){
     
    	nom_fen='audiotel'+tranche+'.php';
     
    	fen_audiotel=window.open(nom_fen, 'Audiotel', 'width=400, height=350');
     
    	fen_audiotel.onload = function(){
        		fen_audiotel.document.getElementById('_datas').value=id_membre;
    			alert('ici');
       	}
    }

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    et si tu met que le alert ?

    car si jamais la ligne d avant fais planter tu verras pas le alert
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    Par défaut
    oui, en effet.

    Ben non, pas d'alert non plus !

  12. #12
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    alors bidouillons un peu
    dans ta popup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type='text/javascript'>
    window.onload = function(){
    alert('yes');
    }</script>
    si ca marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ]<script type='text/javascript'>
    window.onload = function(){
    document.getElementById('_datas').value=window.opener.getValue();
    }</script>
    et dans ta fenetre appelante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var fen_audiotel,maval
    function pop_audiotel (tranche,id_membre){ 
     
       nom_fen='audiotel'+tranche+'.php'; 
     
       fen_audiotel=window.open(nom_fen, 'Audiotel', 'width=400, height=350'); 
     
    maval =id_membre; 
     
    } 
    window.getValue = function(){
    return maval;
    }
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    Par défaut
    eh ben ça marche impec !

    c'était pas simple, on sera pas pourquoi, un mystère de navigateur...

    Merci beaucoup pour ton aide

  14. #14
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    de rien,
    si la communication passe pas dans un sens, on la fais dans l autre
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

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

Discussions similaires

  1. Impression PDF par IE ou Firefox
    Par lteixeir dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 11/07/2007, 09h09
  2. Communication entre Pop up et fenêtre principale
    Par Eyog74 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/05/2007, 12h01
  3. Encodage par défaut de Firefox
    Par kimz dans le forum Firefox
    Réponses: 4
    Dernier message: 09/04/2007, 00h30
  4. Réponses: 3
    Dernier message: 14/04/2006, 09h57
  5. [VB6]renseigner un recordset par le code source
    Par dubidon dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/01/2006, 13h27

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