Tôi muốn chèn các thẻ và tập lệnh tùy chỉnh của riêng mình xung quanh văn bản đã chọn. Một cái gì đó như thế nàyChèn Thẻ Tùy chỉnh vào Lựa chọn Người dùng
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);
Điều này hoạt động trong các trường hợp bình thường nhưng nếu tôi chọn một số đoạn văn bản khác, thì HTML sẽ trả về và đặt thêm thẻ để làm cho HTML hợp lệ. Tôi muốn HTML chính xác đã được chọn mà không có xác thực bổ sung mà javascript đã làm.
Có cách nào để thực hiện điều này không? Tôi đã thử nó theo cách được đề cập trong How can I highlight the text of the DOM Range object? nhưng điều là tôi muốn người dùng nổi bật cụ thể nên nếu A đã thêm một số điểm nổi bật B không thể nhìn thấy nó. Đối với điều này tôi có sẵn mã phụ trợ của tôi.