[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 -
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");
?>
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:
- [javascript] insérer balises
- Insérer video powerpoint - Guide
- Insérer signature word - Guide
- Insérer liste déroulante excel - Guide
- Insérer sommaire word - Guide
- Insérer espace insécable word - Guide
3 réponses
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;
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;