Path: blob/master/emojionearea/src/function/pasteHtmlAtCaret.js
575 views
define([], function() {1return function(html) {2var sel, range;3if (window.getSelection) {4sel = window.getSelection();5if (sel.getRangeAt && sel.rangeCount) {6range = sel.getRangeAt(0);7range.deleteContents();8var el = document.createElement("div");9el.innerHTML = html;10var frag = document.createDocumentFragment(), node, lastNode;11while ( (node = el.firstChild) ) {12lastNode = frag.appendChild(node);13}14range.insertNode(frag);15if (lastNode) {16range = range.cloneRange();17range.setStartAfter(lastNode);18range.collapse(true);19sel.removeAllRanges();20sel.addRange(range);21}22}23} else if (document.selection && document.selection.type != "Control") {24document.selection.createRange().pasteHTML(html);25}26}27});2829