[javascript] insérer balises

Résolu/Fermé
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 - 10 mars 2008 à 15:20
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 - 15 mars 2008 à 13:04
Bonjour,


Je cherche à comprendre ce code car je voudrais le réutiliser pour mon bbcode.
J'aimerais que lorsque l'on clique sur le bouton ou ici le lien , on affiche les balise dans le textarea.
Malhereusement je comprends pas ce code qui pourrait m'aider? Rien que la methode caret pas moyen de trouver ce qu'elle fait.
Je suis pas le genre de gars à pomper c'est pour ca que je voudrais comprendre ce code .

<html>
<head>
<title>Ajouter du texte au milieu d'un textarea</title>
</head>
<body>
<form name="poster" method="POST" action="ee.php" onSubmit="">
<p>Mise en forme du texte :
<a href="javascript:AddText('[url]','URL','[/url]');">URL</a>
| <a href="javascript:AddText('[email]','email@email.fr','[/email]');">Email</a­>
| <a href="javascript:AddText('[b]','Texte en gras','[/b]');">Gras</a>
| <a href="javascript:AddText('[i]','Texte en italique','[/i]');">Italique</a>
| <a href="javascript:AddText('[u]','Texte souligné','[/u]');">Souligné</a>...
<br>
</p>
<script language="JavaScript" type="text/javascript">
function storeCaret(text)
{ // voided
}

function AddText(startTag,defaultText,endTag)
{
if (document.poster.message.createTextRange)
{
var text;
document.poster.message.focus(document.poster.message.caretPos);
document.poster.message.caretPos = document.selection.createRange().duplicate();
if(document.poster.message.caretPos.text.length>0)
{
document.poster.message.caretPos.text = startTag + document.poster.message.caretPos.text + endTag;
}
else
{
document.poster.message.caretPos.text = startTag+defaultText+endTag;
}
}
else document.poster.message.value += startTag+defaultText+endTag;
}
</script>

<textarea
rows='8'
cols='30'
name=message
wrap=virtual
onmouseover="this.focus();"
onkeyup="javascript:storeCaret(this);"
onclick="javascript:storeCaret(this);"
onchange="javascript:storeCaret(this);">
</textarea><br>
<input type="submit" name="soumettre" value="envoyer">
</form>
</body>
</html>

<?

$test=$_POST['message'];

print("$test");

?>
A voir également:

3 réponses

G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7
11 mars 2008 à 13:40
up :p
1
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7
15 mars 2008 à 13:04
merci ;)
0
Utilisateur anonyme
11 mars 2008 à 14:09
Ils utilisent l'objet TextRange javascript qui permet de manipuler une sélection de texte. (comme tu pourras le voir sur ce site : http://old.quentinc.net/ref/js/textrange/

Ils jouent ensuite sur les indices pour rajouter les balises autour du texte sélectionné (code : if(document.poster.message.caretPos.text.length>0)
document.poster.message.caretPos.text = startTag + document.poster.message.caretPos.text + endTag; )

et dans le cas où il n'y a pas de texte dans le textarea alors il mette le texte par défaut :
document.poster.message.caretPos.text = startTag+defaultText+endTag;
-1