[javascript] insérer balises

Résolu
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -  
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   7
 
up :p
1
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   7
 
merci ;)
0
Utilisateur anonyme
 
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