Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer le texte HTML dans une DIV.

Pour système WYSIWYG

Sujet résolu
    14 décembre 2011 à 22:39:05

    Bonjour à tous.

    Je suis en train de développer un système WYSIWYG pour m'améliorer (entre autres) en javascript, mais je suis confronté à un problème majeur.

    En effet, j'ignore comment récupérer le texte HTML comprise dans une balise DIV. Sur internet, j'ai vu qu'il fallait apparemment utiliser une iframe, mais de même, j'ignore comment faire.

    Je précise que c'est le code HTML et non le texte seul que je cherche à obtenir, s'il vous plait.

    Merci de votre aide.
    Bonne soirée.
    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2011 à 22:29:46

      Bonjour, je ne suis pas sur de bien saisir la question, mais un innerHTML permet de récupérer le contenu HTML de n'importe quel élément.

      en googlant avec innerHTML, un des premiers liens remontés:
      http://www.developpez.net/forums/d2799 [...] xt-outerhtml/

      • Partager sur Facebook
      • Partager sur Twitter
        15 décembre 2011 à 23:05:40

        Désolé, je n'ai pas été assez précis.

        Voici du coup un exemple :
        Imaginons le texte (les crochets représentent la sélection) :

        Citation : Texte exemple

        Bonjour [à tous ! Je me présente...]



        Et le html associé :
        <strong>Bonjour [à tous !</strong> Je me présente...]
        


        Il existe déjà une fonction pour sélectionner le texte brut, dans l'exemple : "à tous ! Je me présente..."
        selectedText = '';
        if (window.getSelection) selectedText = window.getSelection();
        else if (document.selection) selectedText = document.selection.createRange().text;
        return selectedText;
        


        Cependant, on ne peut pas sélectionner le text HTML, dans l'exemple "à tous !</strong> Je me présente...".

        J'ai réussi à mettre en place une fonction permettant cela, mais je pense qu'elle risque d'être assez lourde lorsque le texte va gonfler (ça parcourt tous les éléments, jusqu'à l'élément sélectionné, pour le début et la fin de la sélection).

        Donc, s'il existe une fonction javascript, je pense que ce sera plus pratique.

        Merci d'avance.
        Au revoir.
        • Partager sur Facebook
        • Partager sur Twitter
          15 décembre 2011 à 23:23:10

          Développer un système WYSIWYG est une tâche ardue. J'espère que tu en es conscient avant de te jeter corps et âme dedans.

          Je t'invite à lire la documentation sur Selection et Range. Ces deux interfaces contiennent des fonctions qui te seront utiles.

          https://developer.mozilla.org/en/DOM/Selection
          https://developer.mozilla.org/En/DOM:range
          • Partager sur Facebook
          • Partager sur Twitter
            15 décembre 2011 à 23:30:46

            Le problème d'utiliser ces fonctions, c'est que ce n'est utilisable que dans une textarea.

            Mais pour le moment, il marche bien, avec ma fonction de remplacement. Enfin, actuellement, on ne peux que rajouter du formatage, mais ce n'est qu'un début.

            Et pour ce qui est du ardu, ça ne me dérange pas, au contraire, ça me permet de m'améliorer.

            Mais, si ça peut te rassurer, je me limite aux fonctions les plus simples...
            • Partager sur Facebook
            • Partager sur Twitter
              16 décembre 2011 à 7:44:49

              Non non, getSelection() te renvoie la sélection, que tu sois dans un textarea ou non.

              Et la sélection est composée d'un ou plusieurs Range.
              • Partager sur Facebook
              • Partager sur Twitter
                16 décembre 2011 à 19:13:25

                Oui, désolé, j'ai confondu avec une autre fonction.

                Le problème, c'est que l'utilisation de ces fonctions revient au même, il faut tout mettre tout à bout.

                Apparemment, il n'existe pas de fonction toute faite, donc je mets ce sujet en résolu.

                Merci quand même pour votre aide.

                Bonne journée.
                Au revoir.
                • Partager sur Facebook
                • Partager sur Twitter

                Récupérer le texte HTML dans une DIV.

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown