Recuperer le texte selectionne avec la souris!

LotusTissues 3 Messages postés mardi 20 novembre 2007Date d'inscription 28 novembre 2007 Dernière intervention - 27 nov. 2007 à 01:50 - Dernière réponse :  Anob
- 27 déc. 2016 à 20:53
Bonjour,

Je ne parviens pas a faire fonctionne cette fonction qui est cense retourner le texte selectionne.
Dans le premier if elle me renvoie systematiquement une chaine vide.
Si vous avez des idees.
Merci par avance!

function getSelectedText() {
if (window.getSelection) {
// This technique is the most likely to be standardized.
// getSelection() returns a Selection object, which we do not document.
return window.getSelection().toString();
}
else if (document.getSelection) {
// This is an older, simpler technique that returns a string
return document.getSelection();
}
else if (document.selection) {
// This is the IE-specific technique.
// We do not document the IE selection property or TextRange objects.
return document.selection.createRange().text;
}
}
Afficher la suite 

6 réponses

Répondre au sujet
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 27 nov. 2007 à 09:28
0
Utile
Bonjour,

    j'emploie quasi la même chsoe ( sauf .toString() qui me semble inutile ? )

    avec FireFox et consors, il me semble aussi que ça ne
       fonctionne pas dans un champ de saisie ( textarea, input text... )
       et qu'il faut utiliser champ.value.substr(champ.selectionStart,champ.selectionEnd)

<hr />                Cordialement            Bul        
Commenter la réponse de cs_bultez
LotusTissues 3 Messages postés mardi 20 novembre 2007Date d'inscription 28 novembre 2007 Dernière intervention - 27 nov. 2007 à 18:58
0
Utile
Salut,

Tout d'abord merci pour ta reponse...

J'ai essaye sans le ToString, le resultat est le meme.
Quand je souhaite afficher le resultat de la fonction "getSelectedText" comme ceci:

        var str = getSelectedText();
        alert(str);

Le alert m'affiche une chaine de caractere vide. Je ne sais vraiment pas pourquoi! Cette fonction semble fonctionner pour la plupart des gens!
D'ou peut provenir l'erreur?

Lotus
Commenter la réponse de LotusTissues
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 27 nov. 2007 à 20:08
0
Utile
Bonjour,
l'erreur provient d'ailleurs, peut être la façon que tu as d'appeler celle ci...
exemple :
<html>
<head>
<script type= "text/javascript">




//------------------------






function getSelectedText(){
  if (window.getSelection){
    return window.getSelection().toString();
  }
  else if (document.getSelection){
    return document.getSelection();
  }
  else if (document.selection){
    return document.selection.createRange().text;
  }
}
//-------------------
function Fct_Button(){
  var szTmp =  getSelectedText();
  if( !szTmp)
    szTmp ="AUCUN selection";
  alert( szTmp);
}
</script>
</head>

Bonjour,

Texte pour essai

Ligne 1

Ligne 2

</html>



A toi de voir


;0)
Commenter la réponse de PetoleTeam
LotusTissues 3 Messages postés mardi 20 novembre 2007Date d'inscription 28 novembre 2007 Dernière intervention - 28 nov. 2007 à 00:38
0
Utile
Hi,

La fonction Fct_Button m'affiche egalement une chaine vide. J'ai ajoute un else dans lequel on passe lors de l'execution de la fonction. Mais le dernier alert sort une chaine vide.

Merci
Commenter la réponse de LotusTissues
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 28 nov. 2007 à 07:55
0
Utile
<html>
<head>
<title>Texte sélectionné</title>
<script type="text/javascript">
function txtsel()
{    if ( window.selection )
               {    alert("window.selection="+window.selection());    }
    else    {    if (window.getSelection)
                           {    alert("window.getSelection="+window.getSelection());    }
                else    {    if ( document.getSelection )
                                       {    alert("document.getSelection="+document.getSelection);    }
                            else     {    if (document.selection)
                                                {    alert("document.selection.createRange().text="+document.selection.createRange().text);    }
                                        else    {    alert("marche pas");    }
                                    }
                        }
            }
}
</script>
</head>

texte à sélectionner

texte à sélectionner

texte à sélectionner

texte à sélectionner

<form>
<textarea rows=8 cols=50>
texte à sélectionner
texte à sélectionner
texte à sélectionner
texte à sélectionner
</textarea>

</form>

</html>

    mais si la sélection est dans le texarea... avec FF : chaîne vide
    utiliser
champ.value.substr(champ.selectionStart,champ.selectionEnd)

<hr />                Cordialement            Bul        
Commenter la réponse de cs_bultez
0
Utile
Bonjour, [Excusez-moi de la réouverture de ce topic mais ça me semble intéressent de répondre.]
Votre problème viens du faite que votre souris perd sa sélection au moment du clic sur le bouton.
Commenter la réponse de Anob

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.