我是一名有用的助手,可以为您翻译文本。
我有一个文本区域,用户在输入时可以添加文本和表情符号。为了使表情符号正常工作,我使用图片让用户可以点击或使用设备键盘上默认的表情符号。目前,我可以在框中输入文本或使用表情符号,但不能同时进行。
为了获取字符的Unicode,我必须像这样将Unicode字符串添加到文本区域中:
我遇到的问题是,当我在框中输入之前或之后,文本可以通过
有没有办法将文本作为 HTML 输入到文本区域中,而不是作为值输入,或者有没有办法在同一个文本区域中组合 Unicode 字符和文本。
这里是一个演示,
我有一个文本区域,用户在输入时可以添加文本和表情符号。为了使表情符号正常工作,我使用图片让用户可以点击或使用设备键盘上默认的表情符号。目前,我可以在框中输入文本或使用表情符号,但不能同时进行。
为了获取字符的Unicode,我必须像这样将Unicode字符串添加到文本区域中:
var t = $('#msgWriteArea').html() + '&#x'+ code;
$('#msgWriteArea').html(t);
我遇到的问题是,当我在框中输入之前或之后,文本可以通过
.val()
或 value 属性访问,Unicode 字符可以通过 .html()
或 innerHtml
属性访问。有没有办法将文本作为 HTML 输入到文本区域中,而不是作为值输入,或者有没有办法在同一个文本区域中组合 Unicode 字符和文本。
设法解决了问题,需要改变一些东西,最重要的是将 textarea 改为 contenteditable ,这样就容易多了。问题的 JS Fiddle
这里是一个演示,
不能全部归功于我,这些问题的答案有所帮助。
获取 contentEditable div 中的插入符位置
如何在 contenteditable 元素(div)中设置插入符(光标)位置?
如何在 contenteditable 元素中用 html 替换所选文本?
这不是最整洁的代码,可能可以更好地完成。如果您能编辑fiddle使其更好,那就随意编辑吧,它可能会帮助其他陷入同一困境的人。