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 un texte sélectionné à la souris par l'utilisateur


Sujet :

jQuery

  1. #1
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut Récupérer un texte sélectionné à la souris par l'utilisateur
    Bonjour,
    je vais crére un dictionnaire mathématique illustré et dynamique pour des élèves de niveau Collège ou Lycée.

    Afin de rendre ce dictionnaire efficace, j'aimerais qu'il soit possible de sélectionner du texte et, à l'aide d'un raccourci comme la [?], récupérer via JavaScript ce qui a été sélectionné par l'utilisateur. Est-ce possible ?

    Tant que j'y suis, imaginons que l'utilisateur sélectionne un objet comme une image, peut-on récupérer le code HTML correspondant qui cacherait des métadonnées via par exemple des micros datas ?

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    Bonjour

    Il est effectivement possible de récupérer le texte sélectionné en Javascript.
    Voici une fonction en Javascript (pas en jQuery ) qui fonctionne sur tous les navigateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getSelected() {
    	if(window.getSelection) { return window.getSelection(); }
    	else if(document.getSelection) { return document.getSelection(); }
    	else {
    		var selection = document.selection && document.selection.createRange();
    		if(selection.text) { return selection.text; }
    		return false;
    	}
    	return false;
    }
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  3. #3
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Merci beaucoup pour ce code qui va m'être très utile !

  4. #4
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Question toute bête : comment appeler la fonction lorsque je presse par exemple MAJ suivi de , ?

    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
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
     
        <script>
    function getSelected() {
        if(window.getSelection){
            return window.getSelection();
     
        } else if(document.getSelection){
            return document.getSelection();
     
        } else {
            var selection = document.selection && document.selection.createRange();
     
            if(selection.text) {
                return selection.text;
            }
            return false;
        }
     
        return false;
    }
        </script>
      </head>
     
      <body>
     
    Voilà un bout de texte pout tester ce qui est sélectionné.
     
      </body>
    </html>

  5. #5
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Gràce à ce post, je suis arrivé au code suivant qui répond à mon problème excepté qu'il faut appuyer sur ENTRÉE pour connaître le texte qui a été sélectionné.

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
     
        <script>
    /* Sources :
        1) http://www.developpez.net/forums/d1199754/webmasters-developpement-web/javascript/bibliotheques-frameworks/jquery/recuperer-texte-selectionne-souris-lutilisateur/#post6575434
        2) http://www.developpez.net/forums/d1200420/webmasters-developpement-web/javascript/key-press-event/#post6576743
    */
    function getSelected() {
        if(window.getSelection){
            return window.getSelection();
     
        } else if(document.getSelection){
            return document.getSelection();
     
        } else {
            var selection = document.selection && document.selection.createRange();
     
            if(selection.text) {
                return selection.text;
            }
            return false;
        }
     
        return false;
    }
        </script>
      </head>
     
      <body>
     
    Voilà un bout de texte <span style="color: red">pour tester</span>
    <img src="http://www.developpez.net/template/images/logo.png">
    ce qui est sélectionné.
     
      </body>
        <script>
    document.onkeyup = function(event) {
      var keyCode = event.which || event.keyCode;
      if(keyCode == 13) {
          var test = getSelected();
     
          if(test != false){
              alert(">>>" + test + "<<<")
          }
      }
    }
        </script>
    </html>

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

Discussions similaires

  1. Récupérer du texte sélectionné
    Par noratec dans le forum IHM
    Réponses: 2
    Dernier message: 30/12/2008, 11h58
  2. Comment récupérer un texte sélectionné ?
    Par Kicker dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 01/04/2008, 22h03
  3. Comment récupérer le texte sélectionné dans une liste déroulante ?
    Par Je-cherche-pfe dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/09/2007, 20h35
  4. [Fonction] Connaître le texte sélectionné à la souris
    Par negri_l dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/12/2006, 17h01

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