Làm sao để Insert chuỗi đúng vị trí của con trỏ văn bản?



  • Đúng như tiêu đề! Mình muốn hỏi để insert một chuỗi ở vị trí của con trỏ văn bản bằng jquery thì như thế nào.



  • Mình tìm trên mạng thì có đoạn code dưới, nó hoạt động nhưng mình muốn viết lại function thành dạng pasteHtmlAtCaret(div,html) với div là thẻ div cần insert vào thì sửa thế nào?
    <input type="button" value="Paste HTML" onclick="document.getElementById('test').focus(); pasteHtmlAtCaret('<b>INSERTED</b>'); ">
    <div id="test" contenteditable="true">
    Here is some nice text
    </div>

    function pasteHtmlAtCaret(html) {
    var sel, range;
    if (window.getSelection) {
    sel = window.getSelection();
    if (sel.getRangeAt && sel.rangeCount) {
    range = sel.getRangeAt(0);
    range.deleteContents();
    var el = document.createElement("div");
    el.innerHTML = html;
    var frag = document.createDocumentFragment(), node, lastNode;
    while ( (node = el.firstChild) ) {
    lastNode = frag.appendChild(node);
    }
    range.insertNode(frag);
    if (lastNode) {
    range = range.cloneRange();
    range.setStartAfter(lastNode);
    range.collapse(true);
    sel.removeAllRanges();
    sel.addRange(range);
    }
    }
    } else if (document.selection && document.selection.type != "Control") {
    document.selection.createRange().pasteHTML(html);
    }
    }



  • http://jsfiddle.net/gXScu/5/

    bạn coi tham khảo, range thì bạn nên chọn text node nào cần insert, set thêm cái vị trí cần insert vô là xong.



  • @kevin3489 cảm ơn bạn! Để mình xem thế nào



  • @kevin3489 Mình đã xem rồi nhưng không biết cách áp dụng :(


Log in to reply