一般我们做文本对话框,都考虑使用textarea,其实,用div也可以实现,用div的好处就是可以往里插入图片、表情等,不必都显示为字符。
但是在插入表情图片或插入图片时就面临一个问题,图片怎么才能放到我输入文本的中间位置,而不是每次都追加到最后面,百度搜索了很多资料,自己试过,包装好了两种方法,一种是针对div的,一种针对textarea,当然,textarea没法显示图片,只适用于插入表情后将代表表情的字符串插入到文本中间。
代码如下:
// 在光标位置插入内容(仅适用于textarea文本输入框)
function insertValueAtCursor(myField, insertContent) {
if (myField != document.activeElement) {
myField.value = myField.value + insertContent;
return;
}
//IE support
if (document.selection) {
myField.focus();
var sel = document.selection.createRange();
sel.text = insertContent;
sel.select();
}
//MOZILLA/NETSCAPE support
else if (typeof myField.selectionStart === 'number' || typeof myField.selectionEnd == 'number') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
console.log("startPos:" + startPos)
// save scrollTop before insert
var restoreTop = myField.sc

本文介绍如何使用JavaScript实现一个聊天对话框,利用div而非textarea来支持插入图片和表情。通过代码示例,展示了如何确保图片和表情能插入到文本中间,提供了针对div和textarea的两种解决方案,尽管textarea不支持显示图片。
最低0.47元/天 解锁文章
1050

被折叠的 条评论
为什么被折叠?



