Web谈天器材的富文本输入框
回到上一步的 paste.js 函数,把个中的 TODO() 改写成 chooseImg() 即可:
回到赏识器,假如我们复制一张图片并在输入框中执行粘贴的举措,将可以在节制台看到打印出了以 data:image/png;base64 开头的图片地点。 输入框中插入内容 颠末前面两个步调,我们后已经可以读取剪贴板中的文本内容和图片内容了,接下来就是把它们正确的插入输入框的光标位置傍边。 对付插入内容,我们可以直接通过 document.execCommand 要领举办。关于这个要领具体用法可以在MDN文档内里找到,在这里我们只必要行使 insertText 和 insertImage 即可。
可是在某些版本的 Chrome 赏识器下,insertImage 要领也许会失效,这时辰便可以回收其它一种要领,操作 Selection 来实现。而之后选择并插入 emoji 的操纵也会用到它,因此不妨先来相识一下。 当我们在代码中挪用 window.getSelection() 后会得到一个 Selection 工具。假如在页面中选中一些笔墨,然后在节制台执行 window.getSelection().toString(),就会看到输出是你所选择的那部门笔墨。 与这部门地区笔墨相对应的,是一个 range 工具,行使 window.getSelection().getRangeAt(0) 即可以会见它。range 不只包括了选中地区笔墨的内容,还包罗了地区的出发点位置 startOffset 和终点位置 endOffset。 我们也可以通过 document.createRange() 的步伐手动建设一个 range,往它内里写入内容并展示在输入框中。 对付插入图片来说,要先从 window.getSelection() 获取 range ,然后往内里插入图片。
这种步伐也能很好地完成粘贴图片的成果,而且通用性会更好。接下来我们还会操作 Selection,来完成 emoji 的插入。 插入 emoji (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |