bonsoir,
J'ai encore un soucis, j'aimerais envoyer du texte dans un div à l'endroit du curseur comme cela se fait déjà dans un textarea (vu sur forum), j'ai récupéré des bouts de codes (merci à tous) mais rien n'y fait le 2 ème envoi de texte, écrase le premier ??? merci par avance !
<html>
<head>
<script>
var g_posCurseur; // variable global positition du curseur
//définit la postition du curseur
function setPosCurseur() {
g_posCurseur = getPosCurseur(poster.Layer1);
}
//retourne l'emplacement du curseur
function getPosCurseur(oLayer1) {
//sauve le contenu avant modification de la zone de texte
var sAncienTexte = oLayer1.value;
//crer un objet "Range Objet" et sauve son texte avant modification
var oRange = document.selection.createRange();
var sAncRangeTexte = oRange.text;
//cette chaine ne doit pas se retrouver dans la zone de texte !
var sMarquer = String.fromCharCode(28)+String.fromCharCode(29)+String.fromCharCode(30);
//insère la chaine où le curseur est
oRange.text = sAncRangeTexte + sMarquer; oRange.moveStart('character', (0 -
sAncRangeTexte.length - sMarquer.length));
//sauver la nouvelle chaine
var sNouvTexte = oLayer1.value;
//remet la valeur du texte à son ancienne valeur
oRange.text = sAncRangeTexte;
//recherche dans la nouvelle chaine et trouve l'emplacement
// de la chaîne de marquage et renvoie la position
for (i=0; i <= sNouvTexte.length; i++) {
var sTemp = sNouvTexte.substring(i, i + sMarquer.length);
if (sTemp == sMarquer) {
var cursorPos = (i - sAncRangeTexte.length);
return cursorPos;
}
}
}
//insère la chaine dans la zone de texte où le curseur est
function insereChaine(sChaine) {
//si curseur n'a pas de position : insère la chaine à la fin
if (typeof(g_posCurseur)=='undefined') {
poster.Layer1.value+=sChaine;
}else {
var firstPart = poster.Layer1.value.substring(0, g_posCurseur);
var secondPart = poster.Layer1.value.substring(g_posCurseur,poster.Layer1.value.length);
poster.Layer1.value = firstPart + sChaine + secondPart;
}
}
</SCRIPT>
<script>
function infoWrite(Layer1){
document.getElementById("Layer1").innerHTML = Layer1;
}
</script>
</head>
<body>
<form name=poster>
<script language="JavaScript" type="text/javascript">
function storeCaret(text)
{ // voided
}
function AddText(startTag,defaultText,endTag)
{
if (document.poster.Layer1.createTextRange)
{
var text;
document.poster.Layer1.focus(document.poster.Layer1.caretPos);
document.poster.Layer1.caretPos = document.poster.Layer1.selection.createRange().duplicate();
if(document.poster.Layer1.caretPos.text.length>0)
{
document.poster.Layer1.caretPos.text = startTag + document.poster.Layer1.caretPos.text +
endTag;
}
else
{
document.poster.Layer1.caretPos.text = startTag+defaultText+endTag;
}
}
else document.poster.Layer1.value += startTag+defaultText+endTag;
}
</script>
<textarea rows='7'
cols='30'
name=test
wrap="hard"
rt
onclick="javascript:storeCaret(this);"
onchange="javascript:storeCaret(this);" readonly
>Aide disponible ici</textarea>
<a href="#" OnMouseOver="document.poster.test.value='Texte '"
OnMouseOut="document.poster.test.value='aide1'"
onclick="infoWrite(document.poster.test.value)">Aide 1</a>
<a href="#" OnMouseOver="document.poster.test.value='2eme test"
OnMouseOut="document.poster.test.value='Aide2'"
onclick="infoWrite(document.poster.test.value)">Aide 2</a>
<div Id=Layer1 style="position:absolute; left:279px; top:150px; width:250px; height:93px;
z-index:1;background:yellow;border:10px;word-wrap:break-word;" onKeyPress="ecrit(event.keyCode)"
ONCHANGE="setPosCurseur()" ONCLICK="setPosCurseur()" onKeyUp="setPosCurseur()"
contentEditable="true" onFocus=setPosCurseur()></div>
</form>
</body>
</html>

