一般我们做文本对话框,都考虑使用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.scrollTop; myField.value = myField.value.substring(0, startPos) + insertContent + myField.value.substring(endPos, myField.value.length); if (restoreTop > 0) { // restore previous scrollTop myField.scrollTop = restoreTop; } myField.focus(); myField.selectionStart = startPos + insertContent.length; myField.selectionEnd = startPos + insertContent.length; } else { console.log('OK') myField.value += insertContent; myField.focus(); } }
// 在光标位置插入html代码,如果dom没有获取到焦点则追加到最后 function insertAtCursor(dom, html) { if (dom != document.activeElement) { // 如果dom没有获取到焦点,追加 dom.innerHTML = dom.innerHTML + html; return; } var sel, range; if (window.getSelection) { // IE9 或 非IE浏览器 sel = window.getSelection(); if (sel.getRangeAt && sel.rangeCount) { range = sel.getRangeAt(0); range.deleteContents(); // Range.createContextualFragment() would be useful here but is // non-standard and not supported in all browsers (IE9, for one) var el = document.createElement("div"); el.innerHTML = html; var frag = document.createDocumentFragment(), node, lastNode; while ((node = el.firstChild)) { lastNode = frag.appendChild(node); } range.insertNode(frag); // Preserve the selection if (lastNode) { range = range.cloneRange(); range.setStartAfter(lastNode); range.collapse(true); sel.removeAllRanges(); sel.addRange(range); } } } else if (document.selection && document.selection.type != "Control") { // IE < 9 document.selection.createRange().pasteHTML(html); } }
附件中我上传整个demo源码。
相关推荐
总结,"jQuery评论框插入QQ表情代码"项目展示了如何利用jQuery实现富文本输入中的动态功能,提升了用户在评论过程中的参与度和乐趣。通过理解并掌握这些关键技术点,开发者可以为自己的网站或应用添加类似的功能,...
在IT行业中,尤其是在文本编辑和富文本处理领域,"光标处插入图片(类似于qq表情)"是一个常见的功能需求。这个功能允许用户在文本输入时,像QQ聊天那样,在光标位置方便地插入图片,增强表达的生动性。下面将详细探讨...
使用这个组件时,开发者可以通过调用特定的JavaScript函数,传入消息文本、按钮配置等参数,轻松地在页面上显示一个仿QQ风格的提示框。例如,可以有以下的API接口: ```javascript showQQAlert(message, options) {...
在IT行业中,HTMLView是一种常见的技术,用于在Windows应用程序中嵌入HTML内容的显示,比如在Visual C++(VC)项目中。...理解并掌握这些知识点,你就可以构建一个功能丰富的、具有QQ表情支持的应用程序了。
网页浮动QQ客服代码是一种常见的在线客户服务解决方案,它允许网站访客通过点击页面上的浮动图标或按钮,直接与企业的QQ客服人员进行实时交流。这种技术在电商、资讯网站以及各种在线服务行业中广泛应用,能够提高...
将base64编码的图片插入到一个支持富文本编辑的文本框(例如`<textarea>`或富文本编辑器)中,通常需要借助于JavaScript来实现。在base64编码前添加`data:image/jpeg;base64,`(或对应的图片类型)前缀,然后将整个...
通过合理的CSS设计、JavaScript实现以及有效的图片和文本资源,它可以无缝地融入网站,为用户提供方便、快捷的在线支持。为了确保最佳效果,开发者需要仔细阅读"说明.txt"文件,并根据指导正确地将所有这些元素整合...
在这里,`YOUR_QQ_NUMBER`需要替换为你的企业QQ号码,`website_name`可以是你的网站名称,这个链接会打开一个腾讯的预设对话窗口,访客无需登录QQ即可发起聊天。 为了确保代码的兼容性和用户体验,我们还需要考虑...
同时,它被设计成类似于QQ聊天工具的样式,可能包含了一些交互性和视觉特效,如气泡对话框、动态表情、实时预览等功能。这种编辑器对于创建互动性强、用户体验良好的网页内容非常有用,尤其是对于需要在线沟通或协作...
综上所述,实现"图文并排加点击事件"和"qq表情弹框"的功能,需要掌握HTML/CSS布局技巧,JavaScript事件处理,以及表情库的使用。在实际项目中,这些技术常结合前端框架一起使用,以提高开发效率和用户体验。...
实例代码: 第1章(\cha01) ...第2章(\cha02) ...第3章(\cha03) ... 3.3.htm 用对象的方式实现数组 ... 3.6.htm 实现多维数组 ... 4.5.htm 实现计算器 ... \36.2\ Default.aspx 实现文本聊天室
或者提供表情选择器,让用户可以插入丰富的表情图标;还有可能支持Markdown或BBCode语法,方便用户格式化文本。这些功能都是为了使论坛交流更加便捷和生动。 模仿QQ输入框的设计,意味着该插件会包含QQ输入框的一些...
3. **JavaScript/jQuery**:为了实现QQ客服的交互功能,如点击显示/隐藏对话框,可能需要使用JavaScript或者jQuery库。jQuery简化了DOM操作和事件处理,使得在ASP页面上添加交互性变得更加容易。 4. **ASP变量和...
3.31 自动插入文本 3.32 选取textarea的指定行 3.33 文本放大镜 3.34 文本框的默认输入法 3.35 文本框显示网页中选中的内容 3.36 文字的垂直滚动 3.37 文字幻灯片 3.38 随机动态文字效果 3.39 实现textarea的自动...
2. **客服联系信息**:JavaScript可以用来动态显示或隐藏客服QQ号和电话号码,或者当用户点击时弹出对话框或者跳转至聊天窗口。 3. **返回顶部按钮**:这是一个常见的用户体验功能,当用户滚动页面时,此按钮会出现...
3.31 自动插入文本 3.32 选取textarea的指定行 3.33 文本放大镜 3.34 文本框的默认输入法 3.35 文本框显示网页中选中的内容 3.36 文字的垂直滚动 3.37 文字幻灯片 3.38 随机动态文字效果 3.39 实现textarea的自动...
- JavaScript 提供了多种输出方法,如 `alert()` 可以弹出对话框显示信息,`document.write()` 则可以在文档中插入文本。 ### 在 HTML 中使用 JavaScript - **内联脚本**:可以使用 `<script>` 标签将 JavaScript ...
该对话框允许指定的海报图像,尺寸(他们是根据预览自动调整)和两个源文件,这样既使用了WebM格式(Chrome浏览器,Firefox和Opera),并且只支持H264的那些浏览器(IE9和Safari浏览器)可以查看您的视频
KindEditor是一款开源的JavaScript富文本编辑器,常用于网页中提供文本编辑功能。它支持多种浏览器,包括IE6、Firefox、Chrome、Safari和Opera等。在“kindeditor上传视频、图片功能实现”中,我们将探讨如何利用...