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

jQuery Discussion :

Récupérer lien href dans la page


Sujet :

jQuery

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut Récupérer lien href dans la page
    Bonsoir,

    J'ai une page HTML auquel j'ai intégré le menu suivant : http://jcrozier.developpez.com/tutor...enu-contextuel

    Dans ma page HTML générée (JE NE PEUX pas modifier le code source, car généré par un programme auquel je n'ai pas accès!!); je voudrais récupérer la valeur du HREF via le menu contextuel.

    Le programme génère un tableau html comprenant le nom du fichier + le lien.

    En fait, lorsque je me place sur la ligne ou il y a le lien, je voudrais qu'avec le menu contextuel celui-ci me retourne le lien ou j'ai précédemment cliqué...

    Je pense que cela est impossible car il faudrait implémenter un onclick... Mais malheureusement je ne peux pas

    Possible ou pas ?

    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    J'ai pas tout compris entre ce que tu as comme code source et ce que tu ne peux pas faire, ça rend d'autant plus difficile de te répondre objectivement.

    Si tu pouvait montrer ton code source, ce que tu peux faire directement ou indirectement.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Voici la page HTML générée par l'appli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <table>
    <tr><td valign="top"><a href="tutu/"><img src="image.png" width="16" height="16" /></a></td><td><a href="tutu/">tutu/</a></td><td align="right">11-May-2012 11:41  </td><td align="right">  - </td></tr>
    <tr><td valign="top"><a href="test/"><img src="image2.png" width="16" height="16" /></a></td><td><a href="test/">test/</a></td><td align="right">08-May-2012 14:33  </td><td align="right">  - </td></tr>
    <tr><td valign="top"><a href="image_test.png"><img src="image1.png" width="16" height="16" /></a></td><td><a href="image_test.png">image_test.png</a></td><td align="right">04-May-2012 23:17  </td><td align="right">3.1K</td></tr>
    </table>

    J'ai ajouté une DIV pour intégrer le menu contextuel à la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="myDiv">
    <table>
    ..........
    </table>
    </div>
    Je voudrais récupérer par exemple via le menu contextuel le lien de "image_test.png"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Show menu when #myDiv is clicked
    				$("#myDiv").contextMenu({
    					menu: 'myMenu'
    				},
    					function(action, el, pos) {
    					alert(
    						'Action: ' + action + '\n\n' +
    						'Element ID: ' + $(el).attr('id') + '\n\n' + 
    						'X: ' + pos.x + '  Y: ' + pos.y + ' (relative to element)\n\n' + 
    						'X: ' + pos.docX + '  Y: ' + pos.docY+ ' (relative to document)'
    						);
    				});
    A la place de "Element ID:" je voudrais récupérer le lien en cours...

    Est-ce que cela est plus clair ?

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salutation, merci pour ton complément d'information, s'est plus facile pour toi et pour ceux qui souhait d'aider .
    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
     
    // Show menu when #myDiv is clicked
    				$("#myDiv").contextMenu({
    					menu: 'myMenu'
    				},
    					function(action, el, pos) {
    					alert(
    						'Action: ' + action + '\n\n' +
    						'Element ID: ' + $(el).attr('href') + '\n\n' + 
    						'X: ' + pos.x + '  Y: ' + pos.y + ' (relative to element)\n\n' + 
    						'X: ' + pos.docX + '  Y: ' + pos.docY+ ' (relative to document)'
    						);
    				});
     
    A la place de "Element ID:" je voudrais récupérer le lien en cours...
    Donc d'après ton code :
    j'ai remplacé par l'attribut href :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $(el).attr('href')
    Et el doit être égale au dom en jquery : élément déclencheur du menu contextuel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert($("#myDiv table tr td a").attr('href'));
    Bonne chance

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Merci pour ton aide

    Non cela ne fonctionne pas, j'obtiens undefined, j'avais déjà essayé...

    Par contre si je remplace $(el).attr('href') par $(el).text() j'obtiens TOUT le contenu de la table html...

    Une autre idée pour récupérer le lien du clic selon la position sur le tableau HTML ?

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Re ...

    Je n'avais pas vu la fin de ton post !

    si je rajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#myDiv table tr td a").contextMenu({
    le menu ne se déclenche pas

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Met juste une alert() a ce niveau et dit moi ce que tu as?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $("#myDiv").contextMenu({
    					menu: 'myMenu'
    				},
    					function(action, el, pos) {
    alert($("#myDiv table tr td a").attr('href'));
    					alert(
    						'Action: ' + action + '\n\n' +
    						'Element ID: ' + $(el).attr('href') + '\n\n' + 
    						'X: ' + pos.x + '  Y: ' + pos.y + ' (relative to element)\n\n' + 
    						'X: ' + pos.docX + '  Y: ' + pos.docY+ ' (relative to document)'
    						);
    				});

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Si je clique sur la 3ème lignes du tableau j'obtiens la première...

    En fait n'importe quel clic sur le tableau donne toujours la première ligne :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert($("#myDiv table tr td a").attr('href'));
    "tutu/"

  9. #9
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Et avec ça :

    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
     
    // Show menu when #myDiv is clicked
    				$("#myDiv").contextMenu({
    					menu: 'myMenu'
    				},
    					function(action, el, pos) {
    $("#myDiv table tr td a").each(function(){
     alert($(this).attr('href'));
    });
     
    					alert(
    						'Action: ' + action + '\n\n' +
    						'Element ID: ' + $(el).attr('id') + '\n\n' + 
    						'X: ' + pos.x + '  Y: ' + pos.y + ' (relative to element)\n\n' + 
    						'X: ' + pos.docX + '  Y: ' + pos.docY+ ' (relative to document)'
    						);
    				});
    Normalement tu aura plusieurs alert correspond au nombre de tes liens contenues dans le tableaux.
    Je pense qu'il faut que tu attache dynamiquement sans écrire de onclick un événement pour être plus précis pour catcher à la fois ton événement et ton info précisément lors du click sur le lien en question...

  10. #10
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Voilà la piste :

    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
     
    				$("#myDiv").contextMenu({
    					menu: 'myMenu'
    				},
    					function(action, el, pos) {
    $("#myDiv table tr td a").each(function(){
     $(this).onclick = function(){
       alert($(this).attr("href"));
    };
    });
     
    					alert(
    						'Action: ' + action + '\n\n' +
    						'Element ID: ' + $(el).attr('id') + '\n\n' + 
    						'X: ' + pos.x + '  Y: ' + pos.y + ' (relative to element)\n\n' + 
    						'X: ' + pos.docX + '  Y: ' + pos.docY+ ' (relative to document)'
    						);
    				});
    Désolé pour l'indentation je dois y aller, tiens moi au courant.
    Bonne nuité.

  11. #11
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Jquery est tout nouveau pour moi, je débute !

    La je récupère bien le lien via alert. Il m'affiche deux fois chaque lien contenu dans le tableau

    Par contre comment faire pour récupérer le bon lien ??

  12. #12
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    J'ai encore 20 min j'attends.

  13. #13
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Tu as tester le dernier code?
    Normalement tu dois avoir a attachEvent en javascript de l'événement onclick sur tes lien hrefs...
    Normalement.

  14. #14
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Non le onclick ne donne rien; pas d'alert !

  15. #15
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Petit erreur de ma part essaye ça :

    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
     
     
    $("#myDiv").contextMenu({
    					menu: 'myMenu'
    				},
    					function(action, el, pos) {
    $("#myDiv table tr td a").each(function(){
    	 $(this).click(function(){
    	   alert($(this).attr("href"));
    	});
    });
     
    					alert(
    						'Action: ' + action + '\n\n' +
    						'Element ID: ' + $(el).attr('id') + '\n\n' + 
    						'X: ' + pos.x + '  Y: ' + pos.y + ' (relative to element)\n\n' + 
    						'X: ' + pos.docX + '  Y: ' + pos.docY+ ' (relative to document)'
    						);
    				});

  16. #16
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Non

    Toujours pas de alert même avec click

  17. #17
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    essaye de mettre ça hors de ton menu contextuel :
    Dans la function de onload made jquery
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $(function(){
     
     
    });
    ce code hors de ton code jquery du menu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $(function(){
    $("#myDiv table tr td a").each(function(){
    	 $(this).click(function(){
    	   alert($(this).attr("href"));
    	});
    });
    });
    Ceci pour garantir que l'événement click s'attachera bien avant le click général que te propose ton menu contextuel et ceci après le chargement de ta page d'ou l'importance de cette function de chargement onload jquery

  18. #18
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Alors quand je clique sur le lien, il m'affiche bien le lien dans le alert

  19. #19
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Je me disait bien .

  20. #20
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Et donc, c'est quoi le souci entre le click gauche et le click droit du menu contextuel ?

Discussions similaires

  1. Récupérer les liens "href" d'une page web
    Par Linkman_xbp dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 21/06/2009, 21h09
  2. Récupérer l'option dans une page
    Par FrankOVD dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2005, 21h57
  3. Rechercher liens href dans un fichier
    Par ribrok dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2005, 17h15
  4. [Sécurité] comment récupérer le subject dans une page jsp?
    Par lalakers dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 13/07/2005, 11h42

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