Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS]Problème de BBcode et de select

Sujet résolu
    3 août 2006 à 23:35:26

    Bonsoir,
    J'ai récemment créé mon bbcode avec aperçu en direct et tout le tralala. Seulement j'ai un problème : j'ai 3 <select> dans lesquels on peut choisir
    • l'alignement
    • la taille
    • la couleur

    Lorsqu'on clique sur une couleur par exemple, le bbcode qui va avec est rajouté dans la zone de saisie.
    Seulement voilà,

    Citation : Presque tout le monde l'a déjà dit

    Sous Firefox ça marche et sous IE ça marche pas!!!


    Le code:
    <span class="boutons">
                        <input type="button" class="cliquable" onclick="javascript:rcode('<gras>', '</gras>');return(false)" value="Gras"/>
                            <input type="button" class="cliquable" onclick="javascript:rcode('<italique>', '</italique>');return(false)" value="Italique"/>
                            <input type="button" class="cliquable" onclick="javascript:rcode('<souligne>
    ', '</souligne>');return(false)" value="Souligné"/>
                            <input type="button" class="cliquable" onclick="javascript:rcode('<barre>', '</barre>');return(false)" value="Barré"/>
                     </span>
                 <span class="boutons">
                        <input type="button" class="cliquable" onclick="javascript:rcode('<image>', '</image>');return(false)" value="Image"/>
                            <input type="button" class="cliquable" onclick="javascript:rcode('<lien:http://>
    ', '</lien>');return(false)" value="Lien"/>
                            <input type="button" class="cliquable" onclick="javascript:rcode('<email:EMAIL>', '</email>');return(false)" value="Mail"/>         
                     </span>
                     <br/>
                     <span class="liste_rcode">
                        <select id="position">
                               <option class="opt_titre" selected="selected" disabled="disabled">Position</option>
                               <option class="gauche" onclick="javascript:rcode('<gauche>', '</gauche>');return(false)">A gauche</option>
                               <option class="centre" onclick="javascript:rcode('<centre>
    ', '</centre>');return(false)">Centré</option>
                               <option class="droite" onclick="javascript:rcode('<droite>', '</droite>');return(false)">A droite</option>
                            </select>
                            <select id="taille">
                               <option class="opt_titre" selected="selected" disabled="disabled">Taille</option>
                               <option onclick="javascript:rcode('<ttpetit>', '</ttpetit>');return(false)">Très petit</option>
                               <option onclick="javascript:rcode('<petit>
    ', '</petit>');return(false)">Petit</option>
                               <option onclick="javascript:rcode('<moyen>', '</moyen>');return(false)">Moyen</option>
                               <option onclick="javascript:rcode('<grand>', '</grand>');return(false)">Grand</option>
                               <option onclick="javascript:rcode('<ttgrand>
    ', '</ttgrand>');return(false)">Très grand</option>
                               <option onclick="javascript:rcode('<titre1>', '</titre1>');return(false)">Titre 1</option>
                               <option onclick="javascript:rcode('<titre2>', '</titre2>');return(false)">Titre 2</option>
                            </select>
                            <select id="couleur">
                               <option class="opt_titre" selected="selected" disabled="disabled">Couleur</option>
                               <option class="blanc" onclick="javascript:rcode('<blanc>
    ', '</blanc>');return(false)">Blanc</option>
                               <option class="gris" onclick="javascript:rcode('<gris>', '</gris>');return(false)">Gris</option>
                               <option class="noir" onclick="javascript:rcode('<noir>', '</noir>');return(false)">Noir</option>
                               <option class="rouge" onclick="javascript:rcode('<rouge>
    ', '</rouge>');return(false)">Rouge</option>
                               <option class="marron" onclick="javascript:rcode('<marron>', '</marron>');return(false)">Marron</option>
                               <option class="v_clair" onclick="javascript:rcode('<vertclair>', '</vertclair>');return(false)">Vert clair</option>
                               <option class="v_fonce" onclick="javascript:rcode('<vertfonce>
    ', '</vertfonce>');return(false)">Vert foncé</option>
                               <option class="jaune" onclick="javascript:rcode('<jaune>', '</jaune>');return(false)">Jaune</option>
                               <option class="olive" onclick="javascript:rcode('<olive>', '</olive>');return(false)">Olive</option>
                               <option class="b_clair" onclick="javascript:rcode('<bleuclair>
    ', '</bleuclair>');return(false)">Bleu clair</option>
                               <option class="b_fonce" onclick="javascript:rcode('<bleufonce>', '</bleufonce>');return(false)">Bleu foncé</option>
                               <option class="rose" onclick="javascript:rcode('<rose>', '</rose>');return(false)">Rose</option>
                               <option class="turquoise" onclick="javascript:rcode('<turquoise>
    ', '</turquoise>');return(false)">Turquoise</option>
                           <option class="bleu_gris" onclick="javascript:rcode('<bleugris>', '</bleugris>');return(false)">Bleu-gris</option>
                    </select>
                 </span>   

    Le javascript:

    function rcode(rdebut, rfin)
    {
       var input = window.document.formulaire.news;
       input.focus();
       /* réglages IE*/
       if(typeof document.selection != 'undefined')
       {
          var range = document.selection.createRange();
          var insText = range.text;
          range.text = rdebut + insText + rfin;
          range = document.selection.createRange();
          if (insText.length == 0)
          {
            range.move('character', -rfin.length);
          }
          else
          {
             range.moveStart('character', rdebut.length + insText.length + rfin.length);
          }
          range.select();
       }
       /*réglages autres naigateurs  */
       else if(typeof input.selectionStart != 'undefined')
       {
          var start = input.selectionStart;
          var end = input.selectionEnd;
          var insText = input.value.substring(start, end);
          input.value = input.value.substr(0, start) + rdebut + insText + rfin + input.value.substr(end);
          var pos;
          if (insText.length == 0)
          {
             pos = start + rdebut.length;
          }
          else
          {
             pos = start + rdebut.length + insText.length + rfin.length;
          }
          input.selectionStart = pos;
          input.selectionEnd = pos;
       }
       /* pour les autres navigateurs comme Netscape... */
       else
       {
          var pos;
          var re = new RegExp('^[0-9]{0,3}$');
          while(!re.test(pos))
          {
             pos = prompt("insertion (0.." + input.value.length + "):", "0");
          }
          if(pos > input.value.length)
          {
             pos = input.value.length;
          }
          var insText = prompt("Veuillez taper le texte");
          input.value = input.value.substr(0, pos) + rdebut + insText + rfin + input.value.substr(pos);
       }
    }


    Merci pour vos réponses!
    • Partager sur Facebook
    • Partager sur Twitter
      3 août 2006 à 23:58:33

      Ca ressemble à du rafistolage m'enfin:

      <select id="couleur" onchange="this.options[this.selectedIndex].onclick();">
      • Partager sur Facebook
      • Partager sur Twitter
        4 août 2006 à 13:33:27

        Ok mais maintenant nouveau problème : ça affiche 2 fois la balise dans FF et 1 fois dans IE

        Citation : Firefox

        <gris><gris></gris></gris>


        Citation : IE

        <gris></gris>


        Merci de vos réponses :)
        EDIT: c'est bon j'ai trouvé, merci !
        • Partager sur Facebook
        • Partager sur Twitter

        [JS]Problème de BBcode et de select

        × 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