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 le texte sélectionné dans une div contentEditable


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 55
    Par défaut Récupérer le texte sélectionné dans une div contentEditable
    Bonjour,

    Ne trouvant pas de réponse, je soumet ma question :

    Comment récupérer une sélection de texte dans une div contentEditable en jquery (ceci afin de pouvoir y ajouter des balises html avant et après par exemple

    Cdt

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 519
    Par défaut
    bonjour,
    voilà un exemple de ce que vous cherchez à faire http://jsfiddle.net/tw9jwjbv/

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 55
    Par défaut
    Merci pour cette info :


    J'essaie de faire quelquechose à ma sauce ...

    J'arrice a ce stade :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $('#G').click(function(){
    $("#editeur").html('<strong>'+texte+'</strong>');
    texte étant la variable contenant mon texte sélectionné

    Par exemple, si dans la phrase : ceci est un test, je selectionne "est" et que je clique sur lez bouton #G, j'obtiens bien est mais je perds tout le reste

    Voyez vous une piste ?

    J'arrive à récupérer l'ensemble de mon texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var textentier = $("#editeur").text();
    J'ai pensé a récuperer la position de ma chaine texte puis de couper textentier en 3 le texte avant, le texte a modifier, le texte apres) ....

    Je cherche une solution pratique ...

    Cdt

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 55
    Par défaut
    Voici la solution que j'ai trouvé pour insérer un lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $('#L').click(function(){
           	var lien = prompt('Inserer un lien','http://www.');		
    		var textentier = $("#editeur").text();
    		var long1 = textentier.length;		
    		var texte = getSelectionText();
    		var long2 = texte.length;		
    		var position = textentier.indexOf(texte);		
    		var position2 = position + long2;
    		var chaine1 = textentier.substr(0,position);
    		var chaine2 = textentier.substr(position2,long1);		
    		$("#editeur").html(chaine1+'<a href="'+lien+'">'+texte+'</a>'+chaine2);	
    	});

    C'est un peu laborieux mais ça marche ...

    J'aimerais avoir vos avis

    Cdt

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 55
    Par défaut
    Mon code est le suivant :

    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
     
    	$('input:button').click(function(){
     
    	var test = $(this).val();	
    		var mySelection = window.getSelection();
     
    		var textentier = $("#editeur").text();
     
    		var long1 = textentier.length;		
     
    		var position = textentier.indexOf(mySelection);		
     
    		var position2 = position + long2;
     
    		var chaine1 = textentier.substr(0,position);
    		var chaine2 = textentier.substr(position2,long1);	
     
    		switch (test){
    		case "G":		
    		$("#editeur").html(chaine1+'<strong style="color:red;">'+mySelection+'</strong>'+chaine2);	
    		break;
    		case "I":
     
    		break;
    		case "S":
     
    		break;
    		case "L":
     
    		break;
    		default:
     
    		break;
    	} 
    	});
    J ai 4boutons, et selon la valeur du bouton G,I, S ou L, j'insère differentes balises

    Le souci que je rencontre est le suivant : Si j'ai la phrase abc abc abc abc, que je selectionne le dernier "abc", ma balise strong s'appliquera sur le premier "abc"

    Quelqu'un saurait il comment pallier au pb svp ?

    Cdt

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Pour faire ce genre de chose il y a la fonction execCommand()...

    Dernièrement on en a parlé ici.

    Il y a un exemple complet d'utilisation ici : http://jsbin.com/newohujevi/edit?html,output

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/10/2012, 14h51
  2. 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
  3. Capturer du texte sélectionné dans une fenêtre
    Par Trap D dans le forum Windows
    Réponses: 8
    Dernier message: 28/09/2006, 22h29
  4. Réponses: 1
    Dernier message: 18/05/2006, 11h37

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