[BBCode] Insertion de smiley dans textarea
Je cherche à intégrer des smileys dans ma textarea mais l'insertion ne fonctionne pas. J'utilise Firefox avec Firebug et visiblement le problème se situe au moment de la sélection du smiley (sélection grâce à des radiobutton).
Firebug m'indique que ration n'est pas défini (ratio is not defined). Pourtant ratio correspond bien au nom du bouttonradio !!
Voici mon code :
Affichage des smileys
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
|
<p>Smiley :
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="1">
<img src="smileys/classe.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="2">
<img src="smileys/clindoeuil.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="3">
<img src="smileys/content.png" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="4">
<img src="smileys/demonNon.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="5">
<img src="smileys/demonOui.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="6">
<img src="smileys/enerve.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="7">
<img src="smileys/exclam.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="8">
<img src="smileys/fleche.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="9">
<img src="smileys/hallucinant.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="10">
<img src="smileys/heureux.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="12">
<img src="smileys/honte.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="13">
<img src="smileys/idee.png" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="14">
<img src="smileys/interro.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="15">
<img src="smileys/langue.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="16">
<img src="smileys/lol.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="17">
<img src="smileys/pleur.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="18">
<img src="smileys/triste.gif" width="15" height="15">
<input type="radio" name="ratio" value="radiobutton" OnClick=ratio.value="19">
<img src="smileys/yeuxroule.gif" width="15" height="15">
<br />
<input name="button" type="button" OnClick="javascript:smiley();" value="Ajouter au message">
<br />
</p> |
Affichage dans la textarea du code correspondant à ces smileys :
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
|
<script language="JavaScript" type="text/javascript">
function smiley()
{
var smiles = new Array(':classe:',':clindoeuil:',':content:',':demonNon:',':demonOui:',':enerve:',':exclam:',':fleche:',':hallucinant:',':heureux:',':honte:',':idee:',':interro:',':langue:',':lol:',':pleur:',':triste:',':yeuxroule:')
with(document.poster)
{
var smile = ratio.value;
if(smile[smile-1])
{
if(msg.createTextRange)
{
var text;
msg.focus(msg.caretPos);
msg.caretPos = document.selection.createRange().duplicate();
mag.caretPos.text = smiles[smile-1];
}
else
{
msg.value += smiles[smile-1];
}
}
}
}
</script> |
J'ai aussi un autre problème moins important :
Visiblement, la fonction createTextRange ne semble pas fonctionner sous Firefox. Cela m'empêche de positionner mes balises BBCode sur le texte sélectionné, la balise va toujours en fin de texte.
Existe-il un code qui fonctionnerai sous Firefox et IE ??
Merci d'avance pour vos réponses.