Recuperer le texte selectionne avec la souris!

LotusTissues Messages postés 3 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 28 novembre 2007 - 27 nov. 2007 à 01:50
 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;
}
}

6 réponses

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.
1
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 nov. 2007 à 09:28
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        
0
LotusTissues Messages postés 3 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 28 novembre 2007
27 nov. 2007 à 18:58
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
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 nov. 2007 à 20:08
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LotusTissues Messages postés 3 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 28 novembre 2007
28 nov. 2007 à 00:38
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 nov. 2007 à 07:55
<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        
0
Rejoignez-nous