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 :

Obtenir le code HTML du texte sélectionné


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 177
    Par défaut Obtenir le code HTML du texte sélectionné
    Bonjour,

    Je cherche désespérément à récupérer le code HTML du texte sélectionné par l'utilisateur, tant sous IE que sous les autres navigateurs.

    J'ai bien tenté l'utilisation de getSelection(), mais malheureusement cette fonction retourne le texte sans le code HTML qu'il pourrait contenir.

    J'ai aussi testé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var container = document.createElement("div");
    alert(container.innerHTML);
    for (var i = 0, len = sel.rangeCount; i < len; ++i)
    {
    	container.appendChild(sel.getRangeAt(i).cloneContents());
    }
    alert(container.innerHTML);
    html = container.innerHTML;
    Le code HTML est bien retourné, mais ce n'est pas l'exact copie du code HTML contenu.
    Par exemple si le texte est "<strong>Lorem Ipsum</strong>" et que je ne sélectionne que le mot "Ipsum", au lieu de me retourner "Ipsum</strong>", ça me retourne "<strong>Ipsum</strong>"...

    Auriez-vous une astuce pour récupérer simplement le code HTML d'une sélection ?

    Merci d'avance!

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Bonsoir,

    getSelection() renvoie un objet Selection, tu vois une phrase parce que la méthode toString est appelée en cast automatique (avec console.log(window.getSelection() tu en verras le détail).
    Un peu de doc ici : https://developer.mozilla.org/en-US/docs/DOM/Selection

    Ce que tu souhaites faire est assez compliqué, dans le sens où une sélection de texte commence et finit dans des éléments de divers niveaux de DOM, et n'ont pas forcément un élément parent direct commun. En revanche, tu peux utiliser :
    anchorNode
    Returns the node in which the selection begins.
    focusNode
    Returns the node in which the selection ends.

    puis bricoler une fonction qui parcourt le DOM et récupère tous les éléments entre les deux, pour en récupérer le HTML avec innerHTML ; mais comme dit plus tôt, le plus dur sera de jongler entre les niveaux du DOM pour relier tous les éléments de ta sélection.

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/05/2011, 19h42
  2. Obtenir le Code Html généré
    Par Lostini dans le forum ASP.NET
    Réponses: 5
    Dernier message: 25/02/2009, 16h00
  3. Convertir du code HTML en texte brut
    Par arnaudperfect dans le forum Langage
    Réponses: 2
    Dernier message: 18/08/2008, 22h51
  4. convertir un text en code html
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/07/2008, 13h34
  5. [pERl TK] Obtenir le texte sélectionné d'un widget entry
    Par dreydrey dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 18/01/2007, 09h18

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