Je souhaite insérer mes propres balises et scripts personnalisés autour du texte sélectionné. Quelque chose comme çaInsertion de balises personnalisées dans la sélection de l'utilisateur
var range = window.getSelection().getRangeAt(0);
var sel = window.getSelection();
range.setStart(sel.anchorNode, sel.anchorOffset);
range.setEnd(sel.focusNode,sel.focusOffset);
highlightSpan = document.createElement("abbr");
highlightSpan.setAttribute("style","background-color: yellow;");
highlightSpan.setAttribute("onmouseout","javascript:HideContentFade(\"deleteHighlight\");");
highlightSpan.setAttribute("onmouseover","javascript:ShowHighlighter(\"deleteHighlight\",\""+id_val+"\");");
highlightSpan.appendChild(range.extractContents());
range.insertNode(highlightSpan);
Cela fonctionne dans les scénarios normaux, mais si je sélectionne un texte dans différents paragraphes de l'API extractContents validera le code HTML retourné et mettre des étiquettes supplémentaires pour la rendre valide HTML. Je veux le HTML exact qui a été sélectionné sans la validation supplémentaire que javascript a faite.
Y at-il un moyen de le faire? Je l'ai essayé de la façon mentionnée dans How can I highlight the text of the DOM Range object? mais la chose est que je veux des mises en évidence spécifiques à l'utilisateur, donc si A a ajouté un point culminant B ne devrait pas être capable de le voir. Pour cela, j'ai mon code backend prêt.