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 :

Ouverture d'un lien avec CTRL+CLIC


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut Ouverture d'un lien avec CTRL+CLIC
    Bonjour à tous,

    j'ai un truc bizarre : je créé un lien dynamiquement que je ne veux activer que par CTRL+CLIC.
    Ce que j'ai fait fonctionne correctement sauf si on fait un CTRL+doubleclic : alors là ça ouvre non seulement la page demandée, mais en plus un nouvel onglet contenant la page appelante.

    Voici le code :

    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
     
    // ---------------------------------------------------------------------------------------------------------------------
    function Trt_PiedDePage() {
    //	WVersion = "<A href='NotesDeVersion.html'>" + G_Version + " (" + G_DatePublication + ")</a>";
    	G_CTRL = "VERSION";
    	WVersion = "<A href='#' onClick='FonctionCTRL(event);return false;'>" + G_Version + " (" + G_DatePublication + ")</a>";
    	document.getElementById("Cell_Version").innerHTML = WVersion;
    }
    //------------------------------------------------------------------------------------
    function FonctionCTRL(P_Event) {
     
    	if(P_Event.ctrlKey)
    	{
    		if (G_CTRL == "VERSION")
    		{
    			G_CTRL = "";
    			window.open("NotesDeVersion.html", "_top");
    		};
    	};
    }
    //------------------------------------------------------------------------------------
    Qu'est-ce qui cloche ?

    Merci d'avance pour votre aide.
    Zeb'...

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Il faut empêcher le navigateur de faire l'action par défaut avec P_Event.preventDefault();
    One Web to rule them all

  3. #3
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Ha ok, je ne connaissant pas du tout.
    Je le mets après le false ou dans la fonction de traitement de l’événement ?

    J'ai essayé au début et à la fin de la fonction de traitement de l’événement et ça ne fonctionne pas.
    Zeb'...

  4. #4
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Bon, ben y a rien à faire, je n'y arrive pas : quoique je fasse, il y a toujours une ouverture de la page appelante dans un nouvel onglet.
    Je suis preneur de toute solution
    Zeb'...

  5. #5
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Bon, ben comme je tournais en rond sur ce problème et que je n'ai plus vraiment le temps de m'y plonger, j'ai changé mon fusil d'épaule et faisant la même chose mais sur une image et là, impeccable, tout fonctionne.

    Pour finir, je pense que le problème vient du fait que le CTRL+Lien a déjà une action prévu par défaut sur le net.

    L'affaire close.
    Zeb'...

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    preventDefault() sert justement à empêcher l'action par défaut... Il faut évidemment le mettre dans ta FonctionCTRL, là où P_Event est déclaré
    One Web to rule them all

  7. #7
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Oui, je m'en suis douté en lisant plus attentivement ce que tu avais écris, mais ça ne fonctionne pas.

    En fait, d'après mes recherche, je pense que c'est dû au fait que le CTRL+CLIC est une fonctionnalité par défaut lié au HTML lui-même : quand on fait un CTRL+CLIC sur n'importe quel lien ou objet cliquable, n'importe où sur le net, le résultat est le même, ça ouvre la cible dans un nouvel onglet.
    Zeb'...

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Ca fonctionne bien de mon côté : http://jsfiddle.net/vv01xvzc/
    One Web to rule them all

  9. #9
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Bizarre, j'essaye ton lien et rien ne se passe quand je clique sur "Lien externe".
    Zeb'...

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Je croyais que c'était exactement le but escompté

    Si tu veux que le lien marche uniquement avec control enfoncé, il suffit de rajouter un if et de mettre le code désiré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    document.querySelector("a").onclick = function(e){     
        e.preventDefault() 
        if(e.ctrlKey){
            window.location = e.target.href;
        }
    }
    One Web to rule them all

  11. #11
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Non, on s'est mal compris : le but était que le lien ne s'ouvre QUE si on faisait CTRL+CLIC.
    En tout cas, c'est bon ta solution fonctionne.
    Je la garde sous le coude, car pour le moment, nous avons décidé de faire la même chose mais avec le CTRL+CLIC sur une image, ce qu'on avait déjà mis en place.

    Merci encore pour ton aide et ta patience.
    Zeb'...

  12. #12
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    J'avais bien compris, je voulais te prouver que preventDefault marchait bien comme prévu. Bizarre que tu ais trouvé ça bizarre... enfin, passons
    One Web to rule them all

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/01/2013, 17h20
  2. Atteindre une fonction avec CTRL + Clic ne fonctionne pas
    Par DaYonyon dans le forum Eclipse PHP
    Réponses: 0
    Dernier message: 18/03/2010, 14h40
  3. MSFlexgrid et multi selection avec ctrl+clic gauche
    Par CowBoysDaRk dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/08/2007, 15h18
  4. forcer l'ouverture d'un lien hypertexte avec IE
    Par beavis6511 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/12/2005, 15h20
  5. [eclipse 3.1][configuration]pb lors du ctrl+clic (lien)
    Par Invité dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 24/09/2005, 01h01

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