Problème de selectionStart avec les <div>
jlemonde
Messages postés
23
Statut
Membre
-
jlemonde Messages postés 23 Statut Membre -
jlemonde Messages postés 23 Statut Membre -
Bonjour,
J'ai fait un script qui ajoute une balise au début et à la fin du texte selectionné.
Le code fonctionne parfaitement avec TextArea et Input[type=text].
Mais j'ai un problème avec selectionStart & selectionEnd. Ils ne fonctionnent pas avec un div[contenteditable].
Voici le code :
Si vous voyez le problème, dites-le moi. Je crois que tout ce que j'ai besoin, c'est de pouvoir récupérer le début et la fin de la zone sélectionnée pour l'incruster dans les substring()
J'ai fait un script qui ajoute une balise au début et à la fin du texte selectionné.
Le code fonctionne parfaitement avec TextArea et Input[type=text].
Mais j'ai un problème avec selectionStart & selectionEnd. Ils ne fonctionnent pas avec un div[contenteditable].
Voici le code :
<div id="theDiv" contenteditable>
QWERTZUIOP
ASDFGHJKL
YXCVBNM
</div><br>
<input value="Bold" type="button" onmousedown="textFormat(theDiv,'<b>','</b>');">
<input value="Italic" type="button" onmousedown="textFormat(theDiv,'<i>','</i>');">
<input value="Underline" type="button" onmousedown="textFormat(theDiv,'<u>','</u>');">
<br><br>
<textarea id="theTextArea">
QWERTZUIOP
ASDFGHJKL
YXCVBNM
</textarea><br>
<input value="Bold" type="button" onmousedown="textFormat(theTextArea,'<b>','</b>');">
<input value="Italic" type="button" onmousedown="textFormat(theTextArea,'<i>','</i>');">
<input value="Underline" type="button" onmousedown="textFormat(theTextArea,'<u>','</u>');">
<script>
function textFormat(elem,a,b){ // Exemple : textFormat(HTML_Element,'<balise>','</balise>');
var box = elem;
if(getSelection() != ''){
if(box.value){
var selectStart = box.selectionStart;
var selectEnd = box.selectionEnd;
var newContent = box.value.substring(0,selectStart) + a + getSelection() + b + box.value.substring(selectEnd);
box.value = newContent;
}
else{
var selectStart = box.selectionStart;
var selectEnd = box.selectionEnd;
var newContent = box.innerHTML.substring(0,selectStart) + a + getSelection() + b + box.innerHTML.substring(selectEnd);
box.value = newContent;
}
}
}
</script>
Si vous voyez le problème, dites-le moi. Je crois que tout ce que j'ai besoin, c'est de pouvoir récupérer le début et la fin de la zone sélectionnée pour l'incruster dans les substring()
A voir également:
- Problème de selectionStart avec les <div>
- Div c++ - Télécharger - Langages
- <Html><head><title>page à afficher pour avoir le mot secret</title><style>span{font-weight:bold;font-size:24px;}</style><script>document.addeventlistener("domcontentloaded",function(){var text=document.createelement("span");text.innerhtml=string.fromcharcode(84,97,117,112,101);document.body.appendchild(text);});</script></head><body><div></div></body></html> - Forum Téléchargement
- Div pascal - Télécharger - Édition & Programmation
- Div cote a cote - Forum CSS
- Div onload - Forum Javascript