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 :

Une astuce pour un window.close ?


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Une astuce pour un window.close ?
    Bonjour à tous,

    Supposons un très long formulaire.
    Au milieu de ce formulaire, un lien ouvre une popup qui permet de choisir une image par un bouton radio.

    Le clic sur ce bouton a 2 fonctions :
    - window.close()
    - Un window.opener qui appelle une fonction de la page parent et affiche l'image qui a été choisie dans un div.

    Jusqu'à là, tout va bien.

    L'ennui, c'est que lorsque la popup se ferme, le navigateur "saute" et remonte en tête de page alors que je voudrais que la page parent reste au même niveau que le lien de la popup. (C'est un détail, mais le formulaire étant très long, ce n'est pas très pratique...)

    J'ai essayé avec une ancre...
    Pas de succès.
    Quelqu'un a une idée ?

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    A la rigueur, on peut imaginer une solution "à la main" en stockant la valeur du scroll de la fenêtre mère et forcer à nouveau cette valeur après fermeture de la popup, c'est-à-dire quand la fenêtre principale récupère le focus...

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  3. #3
    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
    et avec une ancre ??
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par le_chomeur Voir le message
    et avec une ancre ??
    Citation Envoyé par renaud26
    J'ai essayé avec une ancre...
    @le chomeur : mais je t'accorde que c'est bizarre : j'aurais moi aussi essayé ça dans un premier temps...
    @renaud26 : On peut voir comment tu as implémenté le mécanisme ? (c'est peut-être une erreur de code et pas de raisonnement ^^)

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  5. #5
    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
    on dirait que le code est posté ( page rafraichie ... mais même avec un ancre ça devrait marcher )
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  6. #6
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    sinon juste eviter le popup en restant sur la page mère avec un truc comme prototype window ...
    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 !

  7. #7
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Merci à vous de vous pencher sur le truc.

    Voici mon code :
    code popup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function popupcentre(adresse, nomFenetre, largeur, hauteur, scroll) 
      {
      var largeurEcran = (screen.width - largeur) / 2;
      var hauteurEcran = (screen.height - hauteur) / 2;
      window.open(adresse, nomFenetre, 'height=' + hauteur + ', width=' + largeur + ', top=' + hauteurEcran + ', left=' + largeurEcran + ', scrollbars=' + scroll + ', resizable')
      }
    lien ouverture popup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="#" onClick="popupcentre('images.php','images','850','800','yes')">Cliquez ici pour choisir une image</a>
    Le code de fermeture de la popup (dans la popup, donc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <img src=' ".$chemin."/".$imageName." ';
    <input type='radio' onClick=\"window.close()\" 
    onChange=\"window.opener.afficherImage(this.value')\" 
    value='$imageName'>;
    Et la fonction afficherImage de la page parent est un simple innerHTML qui affiche l'image dans un DIV...

    Elle s'affiche très bien, d'ailleurs...si on se retape tout l'ascenseur pour la voir...

    Une ancre... ok, mais comment "diriger" window.clode vers elle ?

  8. #8
    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
    te renvois en haut de la page

    il te faut mettre un lien a l'endroit ou tu veux rester ( l'ancre ) et mettre ton appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#monancre" ...
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  9. #9
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Et bien voilà une chose que j'ignorais.
    Je te (vous) remercie beaucoup.

    Bonne fin de journée.

  10. #10
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    (c'est peut-être une erreur de code et pas de raisonnement ^^)
    *sifflotte*

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  11. #11
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Pas besoin d'ancre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:void(0)" onClick="popupcentre('images.php','images','850','800','yes')">Cliquez ici pour choisir une image</a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:popupcentre('images.php','images','850','800','yes')">Cliquez ici pour choisir une image</a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:popupcentre('images.php','images','850','800','yes')" onclick="return false;">Cliquez ici pour choisir une image</a>
    Je recommande la 1ére solution
    Je ne réponds pas aux questions techniques par MP.

  12. #12
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    aussi sauf qu'il manque un return false...
    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 !

  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
    <a href="#" onclick="lafontion;return false;" ...
    la propriété href ne doit pas être utiliser pour appeler du javascript
    cf : norme w3c ....
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  14. #14
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    La raison pour laquelle on recommande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="javascript:void(0)" onClick="popupcentre('images.php','images','850','800','yes');return false;">Cliquez ici pour choisir une image</a>
    Le WCAG n'interdit pas cette méthode
    Je ne réponds pas aux questions techniques par MP.

  15. #15
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    le javascript dans le href ne sert à rien Mac !
    il ne sera jamais atteint puisque le href est inhibé par le return false

    mieux vaut utiliser le href pour un chemin pour palier au javascript désactivé ...
    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 !

  16. #16
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    Le WCAG n'interdit pas cette méthode
    Ah tiens ? ^^
    Je m'interdisais cette syntaxe au nom du principe de séparation contenus/présentation/comportements, car je pensais que c'était considéré comme une intrusion js...
    Et le WCAG, comment dire heu ... je vais me renseigner ( "mais qu'est-ce que c'est que ce sigle..." )

    edit : ok ce sont les principes et standards de l'accessibilité sur le web ^^ je connaissais le concept mais pas le terme

    edit n°2 @macmillenium : je n'aurais pas osé te demander de googler pour moi mais merci de l'intention ! ^^

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  17. #17
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    Et le WCAG, comment dire heu ... je vais me renseigner ( "mais qu'est-ce que c'est que ce sigle... )
    WCAG, c'est un standard publié par le WAI (branche accessibilité du W3C) et qui vise principalement les développeurs

    Citation Envoyé par SpaceFrog Voir le message
    le javascript dans le href ne sert à rien Mac !
    il ne sera jamais atteint puisque le href est inhibé par le return false
    Au temps pour moi

    EDIT @RomainVALERI : T'inquiète je connais l'url par cœur
    Je ne réponds pas aux questions techniques par MP.

  18. #18
    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
    merci spaffy pour la précision ;-)

    Mac ==> j'ai pas dit que c'était interdit , mais pas préconisé

    ;-)
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  19. #19
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    il n'était pas préconisé pour des raisons de navigation avec js desactivé mai aussi de référencement
    aujourd'hui les srcolleur de google sont capable de suivre des liens javascript ...
    mais parser des liens href en js ou des liens onclik n'est pas chose facile !

    Donc a utiliser avec parcimonie (ou avec sa sœur ^^)
    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 !

  20. #20
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour à tous,

    Je me permets de réouvrir ce post, car je souhaiterais avoir une précision :

    J'ai donc écrit mon lien de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:void(0)"  onclick="fonction();return false;">Clic</a>
    Mais supposons que le window.close() de la popup soit suivi d'un window.opener qui appelle une fonction de la page parent, et que cette fonction rafraîchisse la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <a href="#" onClick="window.close();window.opener.rafraichit("mapage.php?id=1")>Fermer</a>
     
    //et dans la page parent
    function rafraichit(url){
    window.location.href=url;
    }
    Comment, après le refresh de la page, être au même niveau que la popup ?
    Mettre une ancre + url#ancre dans la fonction "rafraichit" empêche justement le refresh...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Developper une application pour tablette windows
    Par MetallicaMan dans le forum WinRT
    Réponses: 1
    Dernier message: 03/04/2013, 14h40
  2. [TPL] Une astuce pour éditer les TPL sous Ubuntu
    Par §Gama§ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 27/03/2013, 21h40
  3. [MySQL] y a t il une astuce pour améliorer la gestion de ses requêtes dans un projet ?
    Par razily dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/02/2012, 16h54
  4. Réponses: 4
    Dernier message: 31/05/2011, 19h01
  5. une astuce pour ouvrir la base de registre d'un autre disque
    Par bouassouille dans le forum Windows XP
    Réponses: 4
    Dernier message: 07/10/2005, 00h53

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