복붙노트

[JQUERY] 방법의 contentEditable 요소에 HTML로 선택한 텍스트를 바꾸려면? [복제]

JQUERY

방법의 contentEditable 요소에 HTML로 선택한 텍스트를 바꾸려면? [복제]

해결법


  1. 1.http://jsfiddle.net/dKaJ3/2/ : jsFiddle 작업 여기를 참조하십시오

    http://jsfiddle.net/dKaJ3/2/ : jsFiddle 작업 여기를 참조하십시오

    function getSelectionHtml() {
        var html = "";
        if (typeof window.getSelection != "undefined") {
            var sel = window.getSelection();
            if (sel.rangeCount) {
                var container = document.createElement("div");
                for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                    container.appendChild(sel.getRangeAt(i).cloneContents());
                }
                html = container.innerHTML;
            }
        } else if (typeof document.selection != "undefined") {
            if (document.selection.type == "Text") {
                html = document.selection.createRange().htmlText;
            }
        }
        alert(html);
    }
    

    코드 팀 아래에서 촬영 : 리턴 HTML을 사용자가 선택한 텍스트에서


  2. 2.선택한 HTML을 얻으려면, 당신은 내가이 질문에 대해 쓴 기능을 사용할 수 있습니다. 자신의 HTML로 선택 영역을 대체하려면이 기능을 사용할 수 있습니다. 여기에 대신 DOM 노드의 HTML 문자열을 삽입하는 대체물 기능의 버전입니다 :

    선택한 HTML을 얻으려면, 당신은 내가이 질문에 대해 쓴 기능을 사용할 수 있습니다. 자신의 HTML로 선택 영역을 대체하려면이 기능을 사용할 수 있습니다. 여기에 대신 DOM 노드의 HTML 문자열을 삽입하는 대체물 기능의 버전입니다 :

    function replaceSelectionWithHtml(html) {
        var range;
        if (window.getSelection && window.getSelection().getRangeAt) {
            range = window.getSelection().getRangeAt(0);
            range.deleteContents();
            var div = document.createElement("div");
            div.innerHTML = html;
            var frag = document.createDocumentFragment(), child;
            while ( (child = div.firstChild) ) {
                frag.appendChild(child);
            }
            range.insertNode(frag);
        } else if (document.selection && document.selection.createRange) {
            range = document.selection.createRange();
            range.pasteHTML(html);
        }
    }
    
    replaceSelectionWithHtml("<b>REPLACEMENT HTML</b>");
    
  3. from https://stackoverflow.com/questions/6251937/how-to-replace-selected-text-with-html-in-a-contenteditable-element by cc-by-sa and MIT license