Problème bbcode javascript

Fermé
deeploy Messages postés 49 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 16 juillet 2015 - Modifié par deeploy le 4/08/2010 à 15:00
deeploy Messages postés 49 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 16 juillet 2015 - 8 août 2010 à 00:15
Bonjour,

J'ai un petit problème avec une fonction bbcode en javascript. Je ne sais pas si ca vient de la fonction, ou d'ailleurs. Mais ce qui se passe c'est question couleur. J'utilise ma fonction pour mettre en forme une news, je mets du rouge sur la partie de ma news que je veux mettre en rouge, ca fonctionne.
Je vais un peu plus loin mettre une autre partie en rouge, ca ne fonctionne plus ... La deuxième mise en forme va afficher la balise bbcode que j'ai faite.
Exemple :

"Je viens d'être informée que la prochaine livraison UNIQUE EN WALLONIE en Charcuterie et viande sans allergènes se fera ce [rouge]SAMEDI 07 AOÛT/rouge.
Vu le succès et la forte demande pour ces produits, je vous conseille de [rouge]passer commande./rouge"

Le premier rouge va bien être traduit en balise <span couleur="rouge">SAMEDI 07 AOÛT</span> et être affiché en rouge...
Par contre la deuxième sélection va être affichée tel quel [rouge]passer commande./rouge

Je mets le code de la fonction javascript :

<script>
function bbcode(bbdebut, bbfin)
{
var input = window.document.formulaire.news;
input.focus();
if(typeof document.selection != 'undefined')
{
var range = document.selection.createRange();
var insText = range.text;
range.text = bbdebut + insText + bbfin;
range = document.selection.createRange();
if (insText.length == 0)
{
range.move('character', -bbfin.length);
}
else
{
range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
}
range.select();
}
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) + bbdebut + insText + bbfin + input.value.substr(end);
var pos;
if (insText.length == 0)
{
pos = start + bbdebut.length;
}
else
{
pos = start + bbdebut.length + insText.length + bbfin.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}

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) + bbdebut + insText + bbfin + input.value.substr(pos);
}
}
function smilies(img)
{
window.document.formulaire.news.value += '' + img + '';
}
</script>



Si vous avez besoin de plus d'informations demandez, je n'ai pas trop chargé la page exprès.

Merci d'avance

2 réponses

deeploy Messages postés 49 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 16 juillet 2015 6
4 août 2010 à 16:15
up
0
deeploy Messages postés 49 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 16 juillet 2015 6
8 août 2010 à 00:15
up svp ... c'est important !
0