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 :

Créer balise <p> dans div éditable avec positionnement du curseur


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Par défaut Créer balise <p> dans div éditable avec positionnement du curseur
    Bonsoir,

    voilà je vous explique ce que j'aimerais faire et que je n'arrive bien évidemment pas à faire.

    Je voudrais réaliser un petit WYSIWYG des plus simpliste avec juste la possibilité pour le moment de générer des paragraphes et des titres.

    Ne souhaitant pas utiliser d'iFrame, j'ai fait le choix d'utiliser une simple div avec un contenteditable="true".

    Ce que j'aimerais pour le moment c'est pouvoir au chargement de la page démarrer sur une balise <p> vide, pour que dès que la personne commence à saisir quelque chose dans la div, cela soit fait dans une balise paragraphe et non sans aucune balise. Je ne sais pas trop si j'ai été compréhensible là !

    En gros si le gas me tape : "toto", j'aimerais que ça donne "<p>toto</p>" et non "toto".

    J'ai essayé tout un tas de fonctions : append pour créer ma balise + set cursor.... mais je ne suis pas arrivé à faire ce que je voulais.

    Savez vous comment je pourrais réaliser cela, avec quelles commandes....

    Par avance grand merci pour votre aide et vos conseils.

    Voici mon code épuré :

    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
    <html>
        <head>
            <title>Essai</title>
            <script type="text/javascript" src="Include/js/jquery/jquery-1.3.2.min.js" ></script>
            <script type="text/javascript">
                $(document).ready(function() { 
     
                });
            </script>
        </head>
        <body>        
            <div contenteditable="true" id="my_editeur" >
     
            </div>
        </body>
    </html>

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    La seule solution que j'ai trouvée, elle fonctionne sous Chrome4, Firefox3.6 et IE8 (reste à tester les autres), est d'inclure un espace insécable dans le paragraphe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("<p>&nbsp;</p>").appendTo("#myEditeur");
    Lorsque l'utilisateur clique sur la division éditable, le texte qu'il insère est automatiquement placé après l'espace insécable et donc inclus dans le paragraphe.

    Lors de la récupération du texte, il est possible d'enlever les espaces avant et après le texte en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var str = $.trim($(this).text());

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Par défaut
    Merci Daniel pour ces informations, ça marche impeccable.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2008, 14h38
  2. créer table dans div
    Par david06600 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 10/10/2008, 12h50
  3. Message contenant balise HTML dans div
    Par riric85 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 11/06/2008, 19h44
  4. balise input dans DIV
    Par lapartdombre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/02/2006, 17h04

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