我想在所选文本周围插入自己的自定义标记和脚本.像这样的东西
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);
Run Code Online (Sandbox Code Playgroud)
这适用于正常情况,但如果我在不同段落中选择一些文本,extractContents API将验证返回的HTML并添加其他标记以使其成为有效的HTML.我想要选择的确切HTML,而不需要javascript做的额外验证.
有什么办法可以做到吗?我已经按照如何突出显示DOM Range对象的文本中提到的方式尝试了它?但事情是我想要用户特定的亮点,所以如果A添加了一些亮点B应该无法看到它.为此我准备好了我的后端代码.
javascript ×1