contenteditable=“true“

contenteditable=“true”

const insertCustomHtml = (t, e) => {
    var i = document.getElementById('sendBox')
    i.innerText.length;
    if ("getSelection" in window) {
      var s = window.getSelection();
      if (s && 1 === s.rangeCount) {
        i.focus();
        var n = s.getRangeAt(0),
        a = new Image;
        a.src = t,
        a.setAttribute("data-key", e),
        a.setAttribute("width", 20),
        a.setAttribute("height", 20),
        a.draggable = !1,
        a.className = classes.emojiInsert,
        a.setAttribute("title", e.replace("[", "").replace("]", "")),
        n.deleteContents(),
        n.insertNode(a),
        n.collapse(!1),
        s.removeAllRanges(),
        s.addRange(n)
      }
    } else if ("selection" in document) {
      i.focus(), (n = document.selection.createRange()).pasteHTML('<img class="emoj-insert" draggable="false" data-key="' + e + '" title="' + e.replace("[", "").replace("]", "") + '" src="' + t + '">'), i.focus()
    }
    const str = converToMessage(i.innerHTML).trim()
    setInputValue(str)
  }

function converToMessage (e) {
    var t = function () {
      var t = [],
      r = document.createElement("div");
      r.innerHTML = e.replace(/\\/g, "###h###");
      for (var n = r.querySelectorAll("img"), a = r.querySelectorAll("div"), i = n.length, o = a.length; i--;) {
        var s = document.createTextNode(n[i].getAttribute("data-key"));
        n[i].parentNode.insertBefore(s, n[i])
        n[i].parentNode.removeChild(n[i])
      }
      for (; o--;) t.push(a[o].innerHTML), a[o].parentNode.removeChild(a[o]);
      var c = (t = t.reverse()).length ? "\n" + t.join("\n") : t.join("\n");
      return (r.innerText + c).replace(/###h###/g, "&#92;").replace(/<br>/g, "\n").replace(/&amp;/g, "&")
    }();
    new RegExp("(^[\\s\\n\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\n\\s\\t]+$)", "g");
    return t.replace(/&nbsp;/g, " ").trim()
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值