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 :

[Fonction] Connaître le texte sélectionné à la souris


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut [Fonction] Connaître le texte sélectionné à la souris
    Bonjour,

    D'avance merci pour votre lecture.
    Comme le titre l'indique, je cherche à connaître un bout de texte selectionné à la souris dans un objet textarea.
    Savez-vous s'il existe une fonction en PHP (ou autre) permettant de retourner cette valeur ?

    Merci

  2. #2
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    En PHP, il n'y a aucune chance...

    En effet, PHP s'exécute exclusivement coté serveur. Là, sélectionner le texte dans une zone de texte, c'est coté client. Je pense que tu as des chances du coté de javascript
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre chevronné
    Avatar de karami
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2005
    Messages : 343
    Par défaut
    Citation Envoyé par titoumimi
    En PHP, il n'y a aucune chance...

    En effet, PHP s'exécute exclusivement coté serveur. Là, sélectionner le texte dans une zone de texte, c'est coté client. Je pense que tu as des chances du coté de javascript
    Effectivement tu peux le faire avec du javascript, j'ai trouvé cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function addArticleCode(t){ var isFF = false; var textselected = false; if(navigator.userAgent.toLowerCase().indexOf("firefox") > 0){ isFF = true; } var myArea = document.getElementById("body"); var begin,selection,end; if (isFF == true){ if (myArea.selectionStart!= undefined) {  begin = myArea.value.substr(0, myArea.selectionStart);  selection = myArea.value.substr(myArea.selectionStart, myArea.selectionEnd - myArea.selectionStart);  end = myArea.value.substr(myArea.selectionEnd); if (selection.length > 0){ textselected = true; } } }else{ if (window.getSelection){ selection = window.getSelection(); }else if (document.getSelection){ selection = document.getSelection(); }else if (document.selection){ selection = document.selection.createRange().text; } var startPos = myArea.value.indexOf(selection); if (startPos!= 0){ var endPos = myArea.value.indexOf(selection) + selection.length; begin = myArea.value.substr(0,startPos); end = myArea.value.substr(endPos, myArea.value.length); textselected = true; } } if(textselected == true){ switch (t){ case "code": startTag = "[xcode]"; endTag = "[/xcode]\n"; break; case "bold": startTag = "[xb]"; endTag = "[/xb]"; break; case "italics": startTag = "[xi]"; endTag = "[/xi]"; break; case "link": startTag = "[xlink url=#*$!#*$!]"; endTag = "[/xlink]"; break; } myArea.value = begin + startTag + selection + endTag + end; myArea.focus(); }else{ alert("No text selected.\nNo tags added"); } }

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    J'ai simplement amélioré la présentation du code de Karami
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    function addArticleCode(t)
    { 
      var isFF = false;
      var textselected = false;
      var myArea;
      var begin, selection, end;
      var startPos, endPos;
     
      if(navigator.userAgent.toLowerCase().indexOf("firefox") > 0)
      {
        isFF = true;
      }
     
      myArea = document.getElementById("body");
     
      if (isFF == true)
      { 
        if (myArea.selectionStart!= undefined) 
        {  
           begin = myArea.value.substr(0, myArea.selectionStart);  
           selection = myArea.value.substr(myArea.selectionStart, myArea.selectionEnd - myArea.selectionStart);  
           end = myArea.value.substr(myArea.selectionEnd); 
     
           if (selection.length > 0)
           { 
             textselected = true; 
           }
        } 
      }
      else
      { 
        if (window.getSelection)
        { 
          selection = window.getSelection(); 
        }
        else if (document.getSelection)
             { 
               selection = document.getSelection();
             }
             else if (document.selection)
             { 
               selection = document.selection.createRange().text; 
             } 
     
             startPos = myArea.value.indexOf(selection);
             if (startPos!= 0)
             { 
               endPos = myArea.value.indexOf(selection) + selection.length;
               begin = myArea.value.substr(0,startPos); 
               end = myArea.value.substr(endPos, myArea.value.length); 
               textselected = true;
             } 
      } 
     
      if(textselected == true)
      { 
        switch (t)
        { 
          case "code": 
               startTag = "[xcode]";
               endTag = "[/xcode]\n";
               break;
          case "bold": 
               startTag = "[xb]";
               endTag = "[/xb]";
               break;
          case "italics": 
               startTag = "[xi]";
               endTag = "[/xi]";
               break;
          case "link": 
               startTag = "[xlink url=#*$!#*$!]";
               endTag = "[/xlink]"; 
               break;
        } 
     
        myArea.value = begin + startTag + selection + endTag + end;
        myArea.focus(); 
      }
      else
      { 
        alert("No text selected.\nNo tags added"); 
      }
     
    }
    par contre je ne saisis pas bien le switch(t), est-ce pour BBCode ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2014, 10h02
  2. Réponses: 4
    Dernier message: 22/03/2012, 15h05
  3. Changer la couleur du texte lors passage souris sur un TD !
    Par Kokito dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/01/2005, 15h40
  4. [ComboBox] retourner le texte sélectionné
    Par Husqvarna dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/11/2004, 17h09
  5. Recuperation du texte sélectionné
    Par jm barbou dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/11/2002, 08h13

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