Ajout automatique de texte

Signaler
Messages postés
7
Date d'inscription
lundi 2 mai 2005
Statut
Membre
Dernière intervention
24 mai 2005
-
Messages postés
275
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
15 décembre 2005
-
J'utilise un script qui rajoute du texte dans mon formulaire. (Afin de creer un livre d'or avec mise en forme). Cependant, le texte se rajoute a la fin du textarea. J'aimerai qu'il se rajoute là où le curseur est positionné.


Voici mon formulaire:



[javascript:centrer(); centrer]


<form name=poster action="" method="post">
<textarea
rows="17"
cols="110"
name="message"
wrap="PHYSICAL">



</form>


Voici ma fonction link :


function centrer(texte){
var question=prompt("Insérez le texte a centrer","");
texte = "<center>"+question+"</center>";
document.poster.message.value+=" "+texte;
}

Pouvez vous m'aider.
Merci d'avance.

1 réponse

Messages postés
275
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
15 décembre 2005

Voici le code qu'il te faut :

<html>
<head>
<script language="Javascript">
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");


function storeCaret(selec)
{
if (isMozilla)
{
// Si on est sur Mozilla


oField = document.forms['news'].elements['newst'];


objectValue = oField.value;


deb = oField.selectionStart;
fin = oField.selectionEnd;


objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );


// alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");

oField.value = objectValueDeb + "[:" + selec + "]" + objectSelected + "+ selec + "" + objectValueFin;
oField.selectionStart = strlen(objectValueDeb);
oField.selectionEnd = strlen(objectValueDeb + "[:" + selec + "]" + objectSelected + "+ selec + "");
oField.focus();
oField.setSelectionRange(
objectValueDeb.length + selec.length + 3,
objectValueDeb.length + selec.length + 3);
}
else
{
// Si on est sur IE

oField = document.forms['news'].elements['newst'];
var str = document.selection.createRange().text;


if (str.length>0)
{
// Si on a selectionné du texte
var sel = document.selection.createRange();
sel.text = "[:" + selec + "]" + str + "+ selec + "";
sel.collapse();
sel.select();
}
else
{
oField.focus(oField.caretPos);
// alert(oField.caretPos+"\n"+oField.value.length+"\n")
oField.focus(oField.value.length);
oField.caretPos = document.selection.createRange().duplicate();

var bidon = "%~%";
var orig = oField.value;
oField.caretPos.text = bidon;
var i = oField.value.search(bidon);
oField.value = orig.substr(0,i) + "[:" + selec + "]+ selec + "" + orig.substr(i, oField.value.length);
var r = 0;
for(n = 0; n < i; n++)
{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
pos = i + 3 + selec.length - r;
//placer(document.forms['news'].elements['newst'], pos);
var r = oField.createTextRange();
r.moveStart('character', pos);
r.collapse();
r.select();


}
}
}


</script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>



<center>
&nbsp;&nbsp;

<form name="news">





<textarea name="newst" rows="10"cols="45"></textarea>
</form>
</center>

</html>

Si ma réponse te convient, merci de l'accepter !

L'homme n'est pas fait pour travailler, la preuve, ça le fatigue Voltaire