Nettoyer un éditeur de texte
Bonjour,
Il y a un gars sympa sur le forum (Death83) qui m'avait donné un bout de code pour faire un éditeur de texte.
Le problème c'est que je dois le nettoyer, parce qu'il y a plein de fonction inutile me semble-t'il.
Le deuxième problème c'est que je suis une tare en javascript... :oops:
Donc ça, ça va dans les balises head:
Code:
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
| 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;
}
} |
Et ça, ça va au dessus du textarea :
Code:
1 2 3 4 5 6 7 8 9 10
| <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> |
Le truc c'est que je veux supprimer l'option LIST. Mais je ne sais pas quoi enlever dans le code entre les balises head. En plus j'y pige rien au code, y'a pas un commentaire... Si vous savez en placer quelques-uns, n'hésitez-pas...
Voilà merci d'avance, et j'espère ne pas trop abuser.