Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme BBcode

    18 février 2007 à 18:47:18

    Bonjour, lorsque je clique sur mon boutton gras, le code [b][/b] ne s'affiche pas dans le textarea.
    Je ne comprend pas le probleme.
    Voici le code dem on bbcode.js :
    // Fonctions pour le BBcode
    var clientPC = navigator.userAgent.toLowerCase(); // Get client info
    var clientVer = parseInt(navigator.appVersion); // Get browser version
    var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
    var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
    && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
    && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
    var is_moz = 0;
    var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
    var is_mac = (clientPC.indexOf("mac")!=-1);
    var timer=0;
    var ptag=String.fromCharCode(5,6,7);
    function  visualisation() {
    t=document.formu.texte.value 
    t=code_to_html(t)
    if (document.getElementById) document.getElementById("previsualisation").innerHTML=t
    if (document.formu.auto.checked) timer=setTimeout(visualisation,1000)
    }
    function automatique() {
    if (document.formu.auto.checked) visualisation()
    }
    function code_to_html(t) {
    t=nl2khol(t)
    t=remplace_tag(/:sourire:/g, '<img src="images/smile/sourire.gif">',t)
    t=remplace_tag(/:triste:/g, '<img src="images/smile/triste.gif">',t)
    t=remplace_tag(/:colere:/g, '<img src="images/smile/colere.gif">',t)
    t=remplace_tag(/:rigole:/g, '<img src="images/smile/rigole.gif">',t)
    t=remplace_tag(/:decu:/g, '<img src="images/smile/decu.gif">',t)
    t=remplace_tag(/:langue:/g, '<img src="images/smile/langue.gif">',t)
    t=remplace_tag(/:surpris:/g, '<img src="images/smile/surpris.gif">',t)
    t=remplace_tag(/:cleinoeil:/g, '<img src="images/smile/cleinoeil.gif">',t)
    t=remblaie(t)
    // balise Gras
    t=deblaie(/(\[\/b\])/g,t)
    t=remplace_tag(/\[b\](.+)\[\/b\]/g,'<b>$1</b>',t) 
    t=remblaie(t)
    // balise Italique
    t=deblaie(/(\[\/i\])/g,t)
    t=remplace_tag(/\[i\](.+)\[\/i\]/g,'<i>$1</i>',t) 
    t=remblaie(t)
    // balise souligné
    t=deblaie(/(\[\/u\])/g,t)
    t=remplace_tag(/\[u\](.+)\[\/u\]/g,'<u>$1</u>',t) 
    t=remblaie(t)
    // balise quote
    t=deblaie(/(\[\/quote\])/g,t)
    t=remplace_tag(/\[quote\](.+)\[\/quote\]/g,'<p class="quote">$1</p>',t) 
    t=remblaie(t)
    // balise Img
    t=deblaie(/(\[\/img\])/g,t)
    t=remplace_tag(/\[img\](.+)\[\/img\]/g,'<img src="$1"/>',t)
    t=remblaie(t)
    // balise URL
    t=remplace_tag(/\[url=([^\s<>]+)\](.+)\[\/url\]/g,'<a href="$1" target="_blank">$2</a>',t)
    // balise Color
    t=deblaie(/(\[\/color\])/g,t)
    t=remplace_tag(/\[color=(.+?)\](.+?)\[\/color\]/, '<font color=$1>$2</font>',t)
    t=remblaie(t)
    // balise size
    t=deblaie(/(\[\/size\])/g,t)
    t=remplace_tag(/\[size=([+-]?[0-9])\](.+)\[\/size\]/g,'<font size="$1">$2</font>',t)
    t=remblaie(t)
    t=unkhol(t)
    t=nl2br(t)
    return t
    }function deblaie(reg,t) {
    texte=new String(t);
    return texte.replace(reg,'$1\n');
    }
    function remblaie(t) {
    texte=new String(t);
    return texte.replace(/\n/g,'');
    }
    function remplace_tag(reg,rep,t) {
    texte=new String(t);
    return texte.replace(reg,rep);
    }
    function nl2br(t) {
    texte=new String(t);
    return texte.replace(/\n/g,'<br/>');
    }
    function nl2khol(t) {
    texte=new String(t);
    return texte.replace(/\n/g,ptag);
    }
    function unkhol(t) {
    texte=new String(t);
    return texte.replace(new RegExp(ptag,'g'),'\n');
    }
    function countInstances(open,closed)
    {
    var opening = document.hop.contenu.value.split(open);
    var closing = document.hop.contenu.value.split(closed);
    return opening.length + closing.length - 2;
    }
    function TAinsert(text1,text2,contenu)
    {
    var ta = document.getElementById(contenu);
    if (document.selection) {
    var str = document.selection.createRange().text;
    ta.focus();
    var sel = document.selection.createRange();
    if (text2!="")
    {
    sel.text = text1 + sel.text + text2;
    }
    else
    {
    sel.text = sel.text + text1;
    }
    }
    else if (ta.selectionStart | ta.selectionStart == 0)
    {
    if (ta.selectionEnd > ta.value.length) { ta.selectionEnd = ta.value.length; }
    var firstPos = ta.selectionStart;
    var secondPos = ta.selectionEnd+text1.length;
    ta.value=ta.value.slice(0,firstPos)+text1+ta.value.slice(firstPos);
    ta.value=ta.value.slice(0,secondPos)+text2+ta.value.slice(secondPos);
    ta.selectionStart = firstPos+text1.length;
    ta.selectionEnd = secondPos;
    ta.focus();
    }
    else
    { // Opera
    var sel = document.hop.contenu;
    var instances = countInstances(text1,text2);
    if (instances%2 != 0 && text2 != ""){ sel.value = sel.value + text2; }
    else{ sel.value = sel.value + text1; }
    } 
    }
    function bbfontstyle(bbopen, bbclose) {
    var txtarea = document.formu.texte;
    if ((clientVer >= 4) && is_ie && is_win) {
    theSelection = document.selection.createRange().text;
    if (!theSelection) {
    txtarea.value += bbopen + bbclose;
    txtarea.focus();
    return;
    }
    document.selection.createRange().text = bbopen + theSelection + bbclose;
    txtarea.focus();
    return;
    }
    else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
    {
    mozWrap(txtarea, bbopen, bbclose);
    return;
    }
    else
    {
    txtarea.value += bbopen + bbclose;
    txtarea.focus();
    }
    storeCaret(txtarea);
    }

    function emoticon(text) {
            var txtarea = document.formu.text;
            text = ' ' + text + ' ';
            if (txtarea.createTextRange && txtarea.caretPos) {
                    var caretPos = txtarea.caretPos;
                    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
                    txtarea.focus();
            } else {
                    txtarea.value  += text;
                    txtarea.focus();
            }
    }

    function mozWrap(txtarea, open, close)
    {
            var selLength = txtarea.textLength;
            var selStart = txtarea.selectionStart;
            var selEnd = txtarea.selectionEnd;
            if (selEnd == 1 || selEnd == 2)
                    selEnd = selLength;

            var s1 = (txtarea.value).substring(0,selStart);
            var s2 = (txtarea.value).substring(selStart, selEnd)
            var s3 = (txtarea.value).substring(selEnd, selLength);
            txtarea.value = s1 + open + s2 + close + s3;
            return;
    }


    Et une parti du code de ma page de news :
    <center><input type="text" name="titre" size="20" value="Titre"><br>
    <input onclick="TAinsert('[b]','[/b]','texte');" type="button" value="Gras">
    <input onclick="TAinsert('[i]','[/i]','texte');" type="button" value="Italique">
    <input onclick="TAinsert('[u]','[/u]','texte');" type="button" value="Souligné">
    <input onclick="TAinsert('[url]','[/url]','texte');" type="button" value="Lien">
    <input onclick="TAinsert('[img]','[/img]','texte');" type="button" value="Image"><br>
    <a href="javascript:emoticon(':sourire:')">
    <img title src="../images/smile/sourire.gif" alt="" title="" border="0"></a>
    <a href="javascript:emoticon(':triste:')">
    <img title src="../images/smile/triste.gif" border="0"></a>
    <a href="javascript:emoticon(':colere:">
    <img title src="../images/smile/colere.gif" border="0"></a>
    <a href="javascript:emoticon(':rigole:')">
    <img title src="../images/smile/rigole.gif" border="0"></a>
    <a href="javascript:emoticon(':decu:')">
    <img title src="../images/smile/decu.gif" border="0"></a>
    <a href="javascript:emoticon(':langue:')">
    <img title src="../images/smile/langue.gif" border="0"></a>
    <a href="javascript:emoticon(':surpris:')">
    <img title src="../images/smile/surpris.gif" border="0"></a>
    <a href="javascript:emoticon(':cleinoeil:')">
    <img title src="../images/smile/cleinoeil.gif" border="0"></a>
    <br>
    <textarea name="texte" rows="5" cols="50"></textarea><br />
    • Partager sur Facebook
    • Partager sur Twitter

    Probleme BBcode

    × 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