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

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);

    };

};

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容