完全使用 javascript 来实现,这里我也是从其它博客转载来一部分实现的,可以完美解决IE7+不兼容问题,并且包含谷歌、火狐,更不用说什么360/360急速、搜狗浏览器了
function insertAtCursor(myField, myValue) { //IE support if (document.selection) { document.selection.empty(); caretPos.text = myValue; caretPos.select(); myField.focus(); } //MOZILLA/NETSCAPE support else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; // save scrollTop before insert var restoreTop = myField.scrollTop; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); if (restoreTop > 0) { myField.scrollTop = restoreTop; } myField.focus(); myField.selectionStart = startPos + myValue.length; myField.selectionEnd = startPos + myValue.length; } else { myField.value += myValue; myField.focus(); } }
myField 参数为 js document 对象,比如:document.getElementById(""),myValue 为要插入的值
caretPos 对象为什么要定义成全局变量?
往往场景在文本域中,鼠标已经放入焦点了,但是要插入内容,所以去选择内容时,焦点失去了,所以把变量定义成全局的,就是在文本域中获得焦点时,就把位置保存起来,这个只适用于IE情况。
var caretPos ; function setPos(){ if (document.selection) { //IE caretPos = document.selection.createRange(); } }
html代码
<textarea rows="4" onchange="setPos()" onfocus="setPos()" ></textarea>
一定要加上onchange="setPos()" ,因为每次手动在文本域里面添加内容时,在插入数据,IE记住的点事在输入的内容之前,所以会把自己手动输入的内容给覆盖掉
当做笔记记下来,以后肯定用得着
相关推荐
在IT领域,特别是前端开发中,使用JavaScript在`textarea`元素的光标位置插入内容是一项常见且实用的技术。本文将详细解析如何实现这一功能,并深入理解其背后的逻辑与原理。 ### 核心知识点:在`textarea`光标处...
- 通过`sel.text = myValue`在选区中插入指定的文本。 - 最后调用`sel.select()`重新选中插入后的文本。 ##### 3. Mozilla/Netscape支持 对于非IE浏览器(如Firefox等),则采用不同的方法: - 同样首先调用`...
标题“Textarea在光标停留处插入文字”涉及到的是如何在`Textarea`中实现文字的动态插入,使得新添加的文字能精确地出现在用户当前光标所在的位置。这通常涉及到JavaScript的DOM操作和事件监听。 在HTML中,`...
本文主要介绍如何使用jQuery在textarea元素中光标所在位置插入文本的技术,涉及到的操作和概念包括jQuery库的使用、文本框(textarea)的光标定位与操作、JavaScript中的字符串操作等。文章首先定义了jQuery的扩展...
本文将深入探讨如何使用jQuery实现在textarea指定位置插入字符或表情的方法,这对于构建具有富文本编辑功能的应用非常有用。 首先,我们要创建一个自定义的jQuery插件方法,名为`insertAtCaret`。这个方法会接受一...
vue通过当前的光标来进行插值,从而需要去获取光标所在的位置然后进行对光标前后的字符串进行截取处理,从而达到对新字符的插入
光标指定位置 【亲测】【原创】 光标选中位置
在处理`<textarea>`光标位置插入文字并移动光标到文字末尾的操作时,主要涉及两个关键属性:`selectionStart`和`selectionEnd`,以及在IE中使用的`document.selection`对象。 `selectionStart`和`selectionEnd`是...
JS实现在文本指定位置插入内容是一个十分常见的前端操作,主要依赖于JavaScript语言中的一些操作DOM的方法和属性。从给出的示例中,我们可以学到如何根据不同浏览器(如IE、Firefox、Chrome等)来实现这一功能,并且...
在JavaScript中,向文本输入框或者富文本编辑器在光标位置插入特定内容是一项常见的需求。这涉及到对DOM(文档对象模型)的操作以及对文本选取的理解。以下将详细阐述实现这个功能所需的知识点。 首先,我们需要...
标题“JS在textarea光标处插入文本的小例子”和描述“本实例使用Javascript实现在textarea光标处插入文本,支持多种浏览器”揭示了该文档是关于如何...JavaScript在网页文本区域(textarea)组件光标所在位置插入文本的技术指导...
在javascript中,我们可以使用getElementsByTagName()方法来获取页面中的所有TEXTAREA元素,然后循环遍历这些元素,以便在每个元素中插入指定的内容。同时,我们也可以使用innerHTML属性来设置TEXTAREA元素的内容,...
这款jQuery插件通过监听textarea的`input`事件,动态计算textarea中的行数,并在textarea左侧插入一个带有行号的元素。这样,每当用户在textarea中输入、删除或移动光标时,行号都会自动更新。 在实际应用中,使用...
支持将emoji表情添加到textarea或可编辑的div中,自动识别元素类型。 如果是textarea,则选择表情后插入表情代码,如果是可编辑div,则直接插入表情图片。 如果是textarea元素,将插入表情符号的代码字符串,否则,...
在网页开发中,经常需要在文本框中插入文本,特别是在光标处插入文本。下面,我们将讨论如何使用Javascript在光标处插入文本。 光标位置获取 在获取光标位置之前,我们需要了解浏览器对光标位置的支持情况。Fire...
函数首先获取光标在textarea中的位置,然后定义要插入的标签(如`<h1>`),再获取textarea当前的文本值。之后,我们利用字符串的切片操作,在光标位置插入标签,并更新textarea的值。 此功能的实现依赖于JavaScript...