js在contenteditable="true"文本框光标处插

2022-11-28  本文已影响0人  风化雪月

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") {

        // IE9以下

        document.selection.createRange().pasteHTML(html);

    };

};

上一篇 下一篇

猜你喜欢

热点阅读