Problème de selectionStart avec les <div>
jlemonde
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
jlemonde Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
jlemonde Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
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
- Body d'un mailto ✓ - Forum HTML
- Div cote a cote - Forum CSS