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 :

Refresh Iframe d'origine +2


Sujet :

JavaScript

  1. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Je pense que oui car dès que j'enlève setTimeout de la ligne de commande, ca ne couine plus !

    J'ai essayé un peu tout, avec les " et ' mais il doit ya voir une subtilité de plus qui m'échappe.

    Je continue !

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Bon, je dois vraiment être un boulet

    J'ai clairement l'impression que le settimeout imbriqué avec la multiplication des " etc ne lui plait pas.

    ensuite, j'ai essayé de sortir la fonction pour passer les paramètres avec un variable globale

    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
     
    var NomMachine = "";
    ...
     
    function MenuMachine ()
    {	// parent.frames['paneaudroite'].location.replace ("MenuMachine.htas?PC=" + Machine);
    	// top.document.getElementById('if_action').src = "MenuMachine.htas?PC=" + Machine;
    	// parent.JeMeRemplace (Machine);
    	var url = "MenuMachine.htas?PC=" + NomMachine;
    	setTimeout ("top.Charge_Iframe (url)", 1000);
    }
    ...
     
    NomMachine = rs.fields(0).Value;
    <a href=\"#\" onclick=\"MenuMachine(); return false;\">" + rs.fields(0).Value + "</a>
    Quand je laisse return false; j'ai un message d'erreur avec Fin dinstruction attentue a l'affichage de la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href=\"#\" onclick=\"MenuMachine()\">" + rs.fields(0).Value + "</a>
    Avec ce code, je remonte jusqu'à ma function, avec toujours cet objet blabla

  3. #23
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par muppetshow Voir le message
    J'ai essayé un peu tout, avec les " et ' mais il doit ya voir une subtilité de plus qui m'échappe.
    Regarde le code de la ligne générée. En fonction de la où ça commence à bugger (il y a des chances que ton <a href> s'interrompre avant le </a>) ça te donnera une piste ...

    A+

  4. #24
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Heu ... oui effectivement, il semble y avoir une confusion là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomMachine = rs.fields(0).Value;
    Tu définis une variable serveur (c'est de l'ASP ?) que tu essayes d'utiliser directement en JS (comme si c'était une variable JS)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var url = "MenuMachine.htas?PC=" + NomMachine;
    De plus je pensais que ton <a href> était généré en dynamique (dans un document.write() ou équivalent) mais ce n'est visiblement pas le cas : tu sembles mélanger ici aussi langage serveur et client ...

    A+

  5. #25
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    A priori, je ne pense pas qu'il y ait de confusion.

    Tout est fait en javascript.
    Ma ligne d'appel <href> est bien dynamique, générée à travers un document.write.

    Les objets pour accéder à ma base Access etc et mes variables sont déclarées dans des balises <script language="JavaScript"> </script>

    Tout est en Javascript + du html principalement dynamique sauf les quelques déclaration des iframe et listes de menu.

  6. #26
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par muppetshow Voir le message
    A priori, je ne pense pas qu'il y ait de confusion.
    A lors il y a des choses pas claires

    Pour nomMachine, quel est le fonctionnement espéré ?
    Pour le <a href>, c'est que la ligne que tu nous montres est incomplète

    A+

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Alors voici un peu plus :
    NomMachine est une variable globale de ma partie Javascript afin que je puisse l'utiliser partout et en particulier dans la fonction pour la création de l'url, au cas ou la fonction passée dans le setTimeout poserait des problèmes avec les " en plus de l'encadrement de la fonction elle même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    contenu += "<td style=\"width: 70%;\" text-align: left;><a href=\"#\" onclick=\"MenuMachine()\">" + rs.fields(0).Value + "</a></td>"
    As tu besoin de plus d'infirmations ?

  8. #28
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par muppetshow Voir le message
    As tu besoin de plus d'infirmations ?
    Pour l'instant non : ça confirme juste la confusion supposée

    Pour que ta variable soit alimentée correctement côté Javascript, tu devrais plutôt avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomMachine = "<%= rs.fields(0).Value %>";
    Ainsi il s'agit bien d'une variable JS, dont la valeur est déterminée lors de la génération de la page.
    Comme tu l'as écrit toi, ça supposerait que rs.fields(0).Value soit une instruction Javascript, ce qui n'est pas le cas ...

    A+

  9. #29
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Je n'ai le niveau voulu pour argumenter mais je penserai que non.
    Voici la procédure complète dans laquelle est inscrite l'appel qui me pose un soucis.
    C'est bien du javascript non ?

    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
    36
     
    function AfficheProprio (UserID)
    {	sqlString = "SELECT Machines.Machine, Machines.Actif FROM Machines WHERE (((Machines.IdUtilisateur)=" + UserID + ")) ORDER BY Machines.Machine;";
    	contenu = "<br><table><tr><td border=\"1\"></td><td style=\"width: 50%;\" text-align: left; border=\"1\"></td><td border=\"1\" ></tr>";
    	document.write (contenu);
     
    	var rs=new ActiveXObject("ADODB.Recordset");
    	try { rs.Open (sqlString , conn, adOpenUnspecified, adLockUnspecified); }
    	catch(e)
    	{	alert (sqlString); 
    		alert (e.description);
    		rs = null;
    		return;
    	}
     
    	while (!rs.eof) 
    	{	contenu = "<tr><td><img style=\"width: 20px; height: 20px;\" ";
    		if (rs.fields(1).Value)
    		{	contenu += "alt=\"Active\" src=\"../images/set.png\"";
    		}
    		else
    		{	contenu += "alt=\"Désactivé\" src=\"../images/unset.png\"";
    		}
    //				contenu += "></td></td><td style=\"width: 70%;\" text-align: left;><a href=\"#\" onclick=\"parent.JeMeRemplace ('" + rs.fields(0).Value + "'); return false;\">" + rs.fields(0).Value + "</a></td><td>";
    		NomMachine = rs.fields(0).Value;
    				contenu += "></td></td><td style=\"width: 70%;\" text-align: left;><a href=\"#\" onclick=\"MenuMachine()\">" + rs.fields(0).Value + "</a></td><td>";
    		if (rs.fields(1).Value)
    		{	contenu += "<img style=\"width: 20px; height: 20px;\" alt=\"Détacher\" src=\"../images/fin.gif\" onclick=\"DetacheMachine('" + rs.fields(0).value +"')\">";
    		}
    		document.write (contenu + "</td></tr>");
    				rs.movenext;
    	}
    	document.write ("</table>");
    	rs.close;
    	rs = null;
    }

  10. #30
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par muppetshow Voir le message
    C'est bien du javascript non ?
    Heuuu .... oui

    Mais ce n'est pas une utilisation ni standard, ni préconisée (ce n'est pas une critique, mais un constat).

    L'utilisation du document.write() est généralement déconseillée.
    L'ActiveX que tu utilises (IE only, donc) est également à risque, car ouvre la porte de la BDD au poste client.

    Bref, effectivement, il n'y avait pas de mélange de langage client/serveur (puisque tout est client), mais par contre, je ne pourrai pas t'aider plus pour les erreurs que tu obtiens
    (personnellement, je réécrirais la partie ActiveX côté serveur)

    Par contre, une fois ce problème réglé, les syntaxes concernant les mises à jour de frames restent valables

    A+

  11. #31
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    OK,
    Merci beaucoup néanmoins pour le temps passé

    Une dernière question alors.
    Comment depuis mon iframe +2, je peux ré ouvrir ma fenêtre principale ?
    Je vais essayer de me débrouiller comme ça en passant des paramètres pour le faire tomber au bon endroit ?

    Merci

  12. #32
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    ET LA LUMIERE FUT !!!!!!!!!!!!! ..........

    Voici comment ej m'en suis sorti

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href=\"#\" onclick=\"MenuMachine()\">" + rs.fields(0).Value + "</a>
    il n'aime définitivement pas quand j'ajoute le mais franchement je vais le laisser comme ça pour le moment

    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function MenuMachine ()
    {	parent.JeMeRemplace (NomMachine);
    }
    et je fais tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function JeMeRemplace (Machine)
    {	window.location.replace ("MenuMachine.htas?PC=" + Machine);
    }
    Un GROS GROS merci à toi E.Bzz pour ton temps et tes compétences.

    Honnêtement, je ne sais pas si c'est très joli ou non, mais ça va suffire à mon bonheur pour aujourd'hui

    Encore merci

  13. #33
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Tout à fait correct

    Le seul truc c'est que je ne comprends pas ce qui empêche d'intégrer le return false;

    Mais tu es sauvé par la chronologie : le changement de page entraîné par le onclick intervient avant le rechargement via le href (qui, en l'état actuel est bien appelé, ce que devait empêcher le return, mais n'a pas le temps de s'exécuter).

    A+

  14. #34
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    le false est interprété par le serveur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href=\"#\" onclick=\"MenuMachine();return fa"+"lse;\">" + rs.fields(0).value + "</a>
    sinon faut inverser les quotes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.write('<a href="javascript:alert(\'href\')" onclick="MenuMachine();return false;">' +rs.fields(0).value + '</a>')
    c'est quand même plus lisible...

    et au passage Value => value
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Fonction refresh Parent iframe
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/09/2011, 00h51
  2. refresh automatique d'un iframe
    Par amoula84 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/05/2009, 08h15
  3. Probleme de Refresh avec TQuery et DBGrid
    Par insoo dans le forum C++Builder
    Réponses: 7
    Dernier message: 25/11/2003, 17h20
  4. Réponses: 2
    Dernier message: 23/12/2002, 20h34
  5. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38

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