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 :

Quelqu'un a-t'il le code de l'editeur de texte phpBB


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut Quelqu'un a-t'il le code de l'editeur de texte phpBB
    Bonjour,

    Je suis une tâche en javascript, et en plus j'aime pas ce langage. Ceci explique sans-doute cela.
    Manque de pot là j'ai besoin d'un éditeur de texte pour le forum que je termine.

    Comme celui de phpBB me semble convenable je voudrais le récupérer.

    J'ai regardé dans le code phpBB mais je nage complètement, en plus c'est plein de javascript partout, ça me file des boutons sur les mains.

    Auriez-vous l'amabilité de me filer le code net et clair qui permette d'un coup d'un seul d'avoir un bel éditeur de texte sur mon forum ?




    Nan c'est pas de la fainéantise.

  2. #2
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Pourquoi ne pas prendre un editeur de texte WYSIWYG?

    Sinon je peut te passer le code que j'ai fait (type PHPBB) pour ceux qui utilise Opéra ou netscape (car FCK ne marche pas pour ces navigateurs).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Non j'y ai pensé mais je n'aime pas trop les éditeurs wysiwig pour les forums.

    Je veux un truc vraiment simple, du genre l'éditeur qu'il y avait ici avant cette version (pleins de trucs géniaux dans cette version de développez mais j'aime pas trop cet éditeur pour l'instant).

    A la rigueur la seule chose vraiment utile que je cherche c'est la fonction classique qui permet de citer un passage en l'entourant des balises [code][\code] (compatible avec les principaux navigateurs bien sur).

    Même la mise en gras, italique, tout ça, je m'en fiche à la rigueur.

  4. #4
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Pour ca il faut voir le traitement de texte avec les expression régulière.

    Pour info voila un petit editeur js fait maison pour tout les navigateurs.

    Apres pour quote et compgnie c'est pas dure tu as juste a creer de nouvelle balise. Le truc apres c'est de faire des fonction php d'affichage qui interprete ces balise (c'est la que les REGEX interviennent).

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
     
    function BBcode(balise,form,textarea)
    {
        switch (navigator.appName)   
        { 
            case "Microsoft Internet Explorer": 
                var haha=document.selection.createRange().text;    
     
                switch(balise)
                {
                    case 'color':
                        liste = document.getElementById('color');
                        A = liste.options[liste.selectedIndex].style.color;
                        liste.options[0].selected = true;
                        if(A=='')
                        {
                            insertion="";
                        }
                        else
                        {
                            insertion="["+balise+"="+A+"]"+haha+"[/"+balise+"]";
                        }
                    break;
                    case 'taille':
                        liste = document.getElementById('taille');
                        A = liste.options[liste.selectedIndex].firstChild.nodeValue;
                        liste.options[0].selected = true;
     
                        if(A=='Taille')
                        {
                            insertion="";                
                        }
                        else
                        {                
                            switch(A)
                            {            
                                case 'Petit':
                                A='x-small';
                                break;
                                case 'Gros':
                                A='x-large';
                                break;
                            }
                            insertion="["+balise+"="+A+"]"+haha+"[/"+balise+"]";            
                        }
                    break;
                    case 'IMG':
                        var haha=prompt("IMG=","http://");
                    break;
                    case 'URL':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
                        var insertion="["+balise+"=\""+URL+"\"]"+Titre+"[/"+balise+"]";
                    break;
                    case 'b':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    case 'i':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    case 'u':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    case 'li':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    default:
                        var insertion=balise;
                    break;
                }
     
                with(document.forms[form].elements[textarea]) 
                {
                    focus();
                }
                var sel=document.selection.createRange();
                sel.text=insertion;        
            break;
            case  "Netscape": 
                with(document.forms[form].elements[textarea]) 
                {
                    var AvantB = value.substring( 0, selectionStart );
                    var B = value.substring( selectionStart, selectionEnd );
                    var ApresB = value.substring( selectionEnd, selectionEnd +100000);
                } 
                switch(balise)
                {
                    case 'color':
                        A=document.forms[form].color.value;
                        if(A=='Noir')
                        {
                            B="";            
                        }
                        else
                        {                
                            switch(A)
                            {
                                case 'Rouge':
                                A='red';
                                break;
                                case 'Bleu':
                                A='blue';
                                break;
                                case 'Vert':
                                A='green';
                                break;                
                            }
                            B="["+balise+"="+A+"]"+B+"[/"+balise+"]";
                            liste = document.getElementById('color');
                            liste.options[0].selected = true;
                        }
                    break;
                    case 'taille':
                        A=document.forms[form].taille.value;
                        if(A=='Taille')
                        {
                            B="";
                        }
                        else
                        {
                            switch(A)
                            {
                                case 'Petit':
                                A='x-small';
                                break;
     
                                case 'Gros':
                                A='x-large';
                                break;
                            }
                            B="["+balise+"="+A+"]"+B+"[/"+balise+"]";
                            liste = document.getElementById('taille');
                            liste.options[0].selected = true;
                        }
                    break;
                    case 'IMG':
                        var B=prompt("IMG=","http://");        
                        B="["+balise+"\]"+B+"[/"+balise+"]";    
                    break;
                    case 'URL':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
                        B="["+balise+"=\""+URL+"\"]"+Titre+"[/"+balise+"]";
                    break;
                    case 'u':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    case 'i':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    case 'b':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    case 'li':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    default:
                        B=balise;
                    break;
                }            
     
                with(document.forms[form].elements[textarea]) 
                {
                    focus();
                    value= AvantB +""+ B +""+ApresB;
                }
            break;
        }
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Merci Death 83,

    Pour les expressions régulière en PHP pas de problème je sais quoi faire.

    Aurais-tu la partie html, celle avec le textarea, pour que je puisse tester ce code ? Parce que là, sans vouloir abuser, je peux pas dire que ça me parle des masses... (même si c'est très gentil à toi d'avoir bien voulu me filer tout ce code, c'est pas là la question).

    **edit**

    Déjà il faudrait que je vois tout ça fonctionner dans la page web, directement sans avoir à bidouiller le code du tout.
    Après je le recopie et je viens poser les questions pour comprendre, histoire de ne quand même pas utiliser des bout de code que je ne comprend même pas.

    Mais là comme ça, la fonction elle me fait c'est effet la :

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Bon à priori je dois passer à mes boutons les évènements des fonctions.


    Quelqu'un a un exemple SVP ?

  7. #7
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Voila je te balance mon code HTML:

    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
    17
    18
    <table cellpadding="0" cellspacing="0" width="100%">
                                      <tr>
                                           <td> 
                                            <div id="outils">
                                                <BUTTON type="button" class="out"   onMouseOver="this.className=\'over\';Affiche(\'<b>Texte en gras:</b> Le texte à mettre en gras\', \'ast1\');" onMouseOut="this.className=\'out\';" onClick="BBcode(\'b\',\'postagenews\',\'news\');"><span class=bold>B</span></button> 
                                                <BUTTON type="button" class="out"   onMouseOver="this.className=\'over\';Affiche(\'<i>Texte en italique:</i> Le texte à mettre en italique\', \'ast1\');" onMouseOut="this.className=\'out\';" onClick="BBcode(\'i\',\'postagenews\',\'news\');"><span class="italic">I</span></button> 
                                                <BUTTON type="button" class="out"   onMouseOver="this.className=\'over\';Affiche(\'<u>Soulignement:</u> Le texte à souligner\', \'ast1\');" onMouseOut="this.className=\'out\';" onClick="BBcode(\'u\',\'postagenews\',\'news\');"><span class="underline">u</span></button> 
                                                <BUTTON type="button" class="out"  onMouseOver="this.className=\'over\';Affiche(\'<a href=#>Lien hypertexte:</a> Nom du lien\', \'ast1\');" onMouseOut="this.className=\'out\';" onClick="BBcode(\'URL\',\'postagenews\',\'news\');"><span class="bold">url<span></button> 
                                                <BUTTON type="button" class="out"  onMouseOver="this.className=\'over\';Affiche(\'- Listes: [li]Un élément à lister[/li]\', \'ast1\');" onMouseOut="this.className=\'out\';" onClick="BBcode(\'li\',\'postagenews\',\'news\');">list</button> 
                                                <br>
                                                <div class="astuce" id="ast1">Balises: Sélectionnez le texte à modifier puis cliqué sur une des balises.
                                                </div>
                                            </div>
                                            <textarea name="news" style="width:100%;">';if($this->Text!=NULL){echo $this->Text;} echo'</textarea>
                                        </td>
                                    <tr>
                                </table>
    Apres dedans il y a plein de truc que j'ai fait qui ne sont pas indispensable.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Merci beaucoup Death83 !

    Je viens de tester, mais ça ne fonctionne pas à vrai dire.

    J'ai la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ';if($this->Text!=NULL){echo $this->Text;} echo'
    Qui s'affiche en plein milieu du textarea et les boutons ne fonctionnent pas.


    **edit**

    J'ai comme un doute, il faudrait pas que je rajoute des balises <script> dans la partie html ?

  9. #9
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    A oui c'est normal. Le code que je t'ai donner je l'ai copier betement d'une classe php que j'ai faite. Donc tout ca tu efface.

    TU ne garde que les partie en javascript.

    De meme que la fonction affiche, c'est une fonction qui affiche le commentaire en dessous des boutons. Mais il faut que tu la définisse dans une feuille js (ou au dessus).

    Pendant que j'y suis je vais de la donner également lol:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function Affiche(txt, idElement)
    {
    var elmt = document.getElementById(idElement);
    elmt.innerHTML = txt;
    elmt.style.visibility ="visible";
    }

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Merci pour les liens.

    Tous ces systèmes m'ont l'air d'être du wisiwig, moi je veux juste un truc simple comme il y avait avant sur ce forum (et compatible multi navigateur, cela va sans dire).

    Tu en as un à recommander dans toute la liste SpaceFrog ?

    Sinon je viens d'essayer le code HTML de Death83, qu'il a donné, bien généreusement, 4 posts au dessus. Le rendu me va tout à fait, c'est très léger ça me suffit.
    Par contre je n'arrive pas le faire fonctionner, mais j'ai surement du faire n'importe quoi. Voilà le code HTML épuré sur les conseils de Death83, conseils très certainement mal interprétés par moi-même (ceci étant la qualité d'un message est déterminé par le type de réponse qu'il obtient, mais bon... )

    Code html épuré des / :
    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
    17
    <table cellpadding="0" cellspacing="0" width="100%">
                                      <tr>
                                           <td> 
                                            <div id="outils">
                                                <BUTTON type="button" class="out"   onMouseOver="this.className='over';Affiche('<b>Texte en gras:</b> Le texte à mettre en gras', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('b','postagenews','news');"><span class=bold>B</span></button> 
                                                <BUTTON type="button" class="out"   onMouseOver="this.className='over';Affiche('<i>Texte en italique:</i> Le texte à mettre en italique', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('i','postagenews','news');"><span class="italic">I</span></button> 
                                                <BUTTON type="button" class="out"   onMouseOver="this.className='over';Affiche('<u>Soulignement:</u> Le texte à souligner', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('u','postagenews','news');"><span class="underline">u</span></button> 
                                              <BUTTON type="button" class="out"  onMouseOver="this.className='over';Affiche('<a href=#>Lien hypertexte:</a> Nom du lien', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('URL','postagenews','news');"><span class="bold">url</span></button><span class="bold"><span> 
                                                <BUTTON type="button" class="out"  onMouseOver="this.className='over';Affiche('- Listes: [li]Un élément à lister[/li]', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('li','postagenews','news');">list</button> 
                                                <br>
                                                <div class="astuce" id="ast1">Balises: Sélectionnez le texte à modifier puis cliqué sur une des balises.
                                                </div>
                                            </span></span></div><span class="bold"><span>
                                            <textarea name="news" style="width:100%;"></textarea>
                                        </span></span></td>
                                    <tr>
                                </table>
    ça se sont quelques messages d'erreur que m'affiche dreamweaver à l'ouverture de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Ligne  187 Col 296 : Fractionnement de balises qui chevauchaient une paire <button> ... </button>.
    Ligne  192 Col  46 : Fractionnement de balises qui chevauchaient une paire <div> ... </div>.
    Ligne  194 Col  41 : Fermeture d'une balise <span> qui était restée ouverte ou qui chevauchait d'autres balises.
    Ligne  194 Col  41 : Fermeture d'une balise <span> qui était restée ouverte ou qui chevauchait d'autres balises.

    **edit**
    Il faudrait peut être faire quelque chose pour éviter l'apparition de ces barres de scrolls horizontales, lorsque l'on colle du code. Modeste suggestion.

  12. #12
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Tu as quel erreur avec la console javascript?

    J'utilise directement notepad. Je sais pas ce que te raconte dream weaver c'est bizarre.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Salut Death83,

    Alors voilà je fais deux copier/coller :
    - Le premier c'est le code source intégrale de la page qui me sert de test. Il te suffit de le coller tel quel dans le bloc note pour voir le problème (toi ou quelqu'un d'autre au demeurant, mais bon c'est ton script à la base .
    - Le second c'est la liste des erreur signalées par Internet Explorer, lorsque que j'affiche la page.

    Code source intégral de la page :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "<a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank">http://www.w3.org/TR/html4/loose.dtd</a>">
    <html>
    <head>
    <title>Document sans nom</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
    function BBcode(balise,form,textarea)
    {
        switch (navigator.appName)   
        { 
            case "Microsoft Internet Explorer": 
                var haha=document.selection.createRange().text;    
     
                switch(balise)
                {
                    case 'color':
                        liste = document.getElementById('color');
                        A = liste.options[liste.selectedIndex].style.color;
                        liste.options[0].selected = true;
                        if(A=='')
                        {
                            insertion="";
                        }
                        else
                        {
                            insertion="["+balise+"="+A+"]"+haha+"[/"+balise+"]";
                        }
                    break;
                    case 'taille':
                        liste = document.getElementById('taille');
                        A = liste.options[liste.selectedIndex].firstChild.nodeValue;
                        liste.options[0].selected = true;
     
                        if(A=='Taille')
                        {
                            insertion="";                
                        }
                        else
                        {                
                            switch(A)
                            {            
                                case 'Petit':
                                A='x-small';
                                break;
                                case 'Gros':
                                A='x-large';
                                break;
                            }
                            insertion="["+balise+"="+A+"]"+haha+"[/"+balise+"]";            
                        }
                    break;
                    case 'IMG':
                        var haha=prompt("IMG=","http://");
                    break;
                    case 'URL':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
                        var insertion="["+balise+"=\""+URL+"\"]"+Titre+"[/"+balise+"]";
                    break;
                    case 'b':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    case 'i':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    case 'u':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    case 'li':
                        var insertion="["+balise+"]"+haha+"[/"+balise+"]";
                    break;
                    default:
                        var insertion=balise;
                    break;
                }
     
                with(document.forms[form].elements[textarea]) 
                {
                    focus();
                }
                var sel=document.selection.createRange();
                sel.text=insertion;        
            break;
            case  "Netscape": 
                with(document.forms[form].elements[textarea]) 
                {
                    var AvantB = value.substring( 0, selectionStart );
                    var B = value.substring( selectionStart, selectionEnd );
                    var ApresB = value.substring( selectionEnd, selectionEnd +100000);
                } 
                switch(balise)
                {
                    case 'color':
                        A=document.forms[form].color.value;
                        if(A=='Noir')
                        {
                            B="";            
                        }
                        else
                        {                
                            switch(A)
                            {
                                case 'Rouge':
                                A='red';
                                break;
                                case 'Bleu':
                                A='blue';
                                break;
                                case 'Vert':
                                A='green';
                                break;                
                            }
                            B="["+balise+"="+A+"]"+B+"[/"+balise+"]";
                            liste = document.getElementById('color');
                            liste.options[0].selected = true;
                        }
                    break;
                    case 'taille':
                        A=document.forms[form].taille.value;
                        if(A=='Taille')
                        {
                            B="";
                        }
                        else
                        {
                            switch(A)
                            {
                                case 'Petit':
                                A='x-small';
                                break;
     
                                case 'Gros':
                                A='x-large';
                                break;
                            }
                            B="["+balise+"="+A+"]"+B+"[/"+balise+"]";
                            liste = document.getElementById('taille');
                            liste.options[0].selected = true;
                        }
                    break;
                    case 'IMG':
                        var B=prompt("IMG=","http://");        
                        B="["+balise+"\]"+B+"[/"+balise+"]";    
                    break;
                    case 'URL':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
                        B="["+balise+"=\""+URL+"\"]"+Titre+"[/"+balise+"]";
                    break;
                    case 'u':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    case 'i':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    case 'b':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    case 'li':
                        B="["+balise+"]"+B+"[/"+balise+"]";
                    break;
                    default:
                        B=balise;
                    break;
                }            
                with(document.forms[form].elements[textarea]) 
                {
                    focus();
                    value= AvantB +""+ B +""+ApresB;
                }
            break;
        }
    } 
    </script>
    </head>
    <body>
    <table cellpadding="0" cellspacing="0" width="100%">
                                      <tr>
                                           <td> 
                                            <div id="outils">
                                                <BUTTON type="button" class="out"   onMouseOver="this.className='over';Affiche('<b>Texte en gras:</b> Le texte à mettre en gras', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('b','postagenews','news');"><span class=bold>B</span></button> 
                                                <BUTTON type="button" class="out"   onMouseOver="this.className='over';Affiche('<i>Texte en italique:</i> Le texte à mettre en italique', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('i','postagenews','news');"><span class="italic">I</span></button> 
                                                <BUTTON type="button" class="out"   onMouseOver="this.className='over';Affiche('<u>Soulignement:</u> Le texte à souligner', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('u','postagenews','news');"><span class="underline">u</span></button> 
                                                <BUTTON type="button" class="out"  onMouseOver="this.className='over';Affiche('<a href=#>Lien hypertexte:</a> Nom du lien', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('URL','postagenews','news');"><span class="bold">url<span></button> 
                                                <BUTTON type="button" class="out"  onMouseOver="this.className='over';Affiche('- Listes: [li]Un élément à lister[/li]', 'ast1');" onMouseOut="this.className='out';" onClick="BBcode('li','postagenews','news');">list</button> 
                                                <br>
                                                <div class="astuce" id="ast1">Balises: Sélectionnez le texte à modifier puis cliqué sur une des balises.
                                                </div>
                                            </div>
                                            <textarea name="news" style="width:100%;"></textarea>
                                        </td>
                                    <tr>
                                </table>
     
    </body>
    </html>
    Erreurs javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Ligne : 186
    Car : 23
    Erreur : Objet attendu
    Code : 0
    URL : (c'est le chemin du fichier sur mon bureau)

    Si tu arrives à faire marcher ce truc et à m'expliquer ce qui ne fonctionne pas...Bien je serais content.

  14. #14
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    A mais ouis
    pour que ca marche tu dois mettre un form.

    et dans la fonction bbcode tu envoi le nom du form et le nom du textarea correspondant.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Salut Death83,

    C'est vrai que je n'ai pas ajouté de balise formulaire, mais normalement, en cliquant sur I par exemple, après avoir surligné un passage dans le textarea, ce passage devrait donc être entouré des balises .
    Or rien ne se passe.

    Après pour le form et le submitt, c'est juste pour parser le code avec PHP et afficher le résultat en italique, non ?

  16. #16
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par psychoBob
    Salut Death83,

    C'est vrai que je n'ai pas ajouté de balise formulaire, mais normalement, en cliquant sur I par exemple, après avoir surligné un passage dans le textarea, ce passage devrait donc être entouré des balises .
    Or rien ne se passe.

    Après pour le form et le submitt, c'est juste pour parser le code avec PHP et afficher le résultat en italique, non ?
    Non c'est pour dire a quel endroit on reinjecte le texte avec les balises. Je suis presque sur que le probleme viens de la.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Bon alors je vais surement passer pour une lamentable tare, mais j'ai essayé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form>
      <textarea name="news" style="width:100%;"></textarea>
        </form>
    Voilà j'ai touché à rien d'autre, je n'ai fait que rajouter les balises form. ça ne fonctionne pas.



    ( )

  18. #18
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par psychoBob
    Bon alors je vais surement passer pour une lamentable tare, mais j'ai essayé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form>
      <textarea name="news" style="width:100%;"></textarea>
        </form>
    Voilà j'ai touché à rien d'autre, je n'ai fait que rajouter les balises form. ça ne fonctionne pas.



    ( )
    Ce que tu doit faire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form name="postagenews">
      <textarea name="news" style="width:100%;"></textarea>
        </form>
    Il faut aussi donné le non du form.

    Sinon tu aurai pu changer les parametre passez dans ma fonction et renviyé juste l'id du textarea et faire un getdocumetbyID. D'ailleurs je sais plus pourquoi je n'avais pas fais ca comme ca.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    ok je viens d'essayer, les balises s'affichent (rq je m'était bien dit qu'il fallait un nom au form, mais je n'ai même pas sur trouver lequel).

    Tu vois quelque chose pour ce message d'erreur, Death83 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Ligne : 186
    Car : 23
    Erreur : Objet attendu
    Code : 0
    URL : (c'est le chemin du fichier sur mon bureau)
    Dans dreamweaver, cela correspond à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <BUTTON type="button" class="out"   onMouseOver="this.className='over';
    Affiche('<i>Texte en italique:</i> Le texte à mettre en italique', 'ast1');" 
    onMouseOut="this.className='out';" 
    onClick="BBcode('i','postagenews','news');">
    <span class="italic">I</span></button>

    Histoire d'avoir un code propre !

  20. #20
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par psychoBob
    Histoire d'avoir un code propre !
    lol, c'est pas avec dreamweaver que tu va avoir du code propre lol.

    Je pense que ca doit venir du fait que le script appel des classe CSS que tu na pas défini. (over, out...) Définit en dans ta feuille de style ca devrait mieu passer.

Discussions similaires

  1. quelqu'un pourrait me corriger ce code ?
    Par merry marie dans le forum Langage
    Réponses: 4
    Dernier message: 10/01/2013, 13h56
  2. incomprehension de quelques lignes d'assembleur dans du code C
    Par ultimaroms dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 06/10/2011, 19h31
  3. Fonction code behind dans l'attribut texte d'un composant
    Par Neodream dans le forum Débuter
    Réponses: 0
    Dernier message: 14/06/2010, 08h50
  4. Rediriger le résultat d'un code java dans un fichier texte
    Par ysahel dans le forum Général Java
    Réponses: 9
    Dernier message: 27/03/2009, 14h57
  5. Réponses: 2
    Dernier message: 08/11/2006, 20h57

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