11548 sujets

JavaScript, DOM et API Web HTML5

Ce que je vous demande est un exemple bien précis, extensible à d'autres cas.
Pourquoi le code suivant ne marche t-il pas ?
Je veux faire en sorte que que le curseur texte se place entre les deux <titre1></titre1> .
JS:
function add(x,textarea){
if(x=='titre1'){
textarea.focus();
textarea.value +=' <titre1></titre1> ';
textarea.caretPos = 10;
 /* textarea.value +=textarea.caretPos; */
textarea.focus();
 } } 

HTML:
<script type="text/javascript" src="<?=$CAHTML?>data/forms.js"></script>
<input onclick="add('titre1',document.getElementById('aaasss'))" />
<textarea id="aaasss" name="aaasss" cols="50" rows="10"></textarea>


Une idée ? Je ne sais pas exactement comment (les sources js sont en parties abscontes pour moi)

EDIT:
Autre problème:
Lorsque l'user sélectionne du texte dans le textarea et qu'il click sur un bouton (js), pour que <gras> apparaissent avant et </gras> après (par exemple) ?

Ca existe dans DotClear, mais même en analysant le JS, je ne trouve pas...
Modifié le 26 Oct 2004 - 20:08
J'ai jamais eu l'occasion de faire des truc comme ça, mais à vu de nez, je dirait :

Avec IE, essaye de regarder du coté de TextRange :
> http://www.laltruiste.com/document.php?compteur=2&rep=10&evolution=148
> http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_textrange.asp

Avec Mozilla, il faut voir du coté de Range
> http://www.mozilla.org/docs/dom/domref/dom_range_ref.html

Et je te conseille la lecture de ce tuto qui explique comment faire exactement ce que tu cherche :
> http://developpeur.journaldunet.com/tutoriel/css/020220css_barreoutils2.shtml