function getCaret(ZysrID)
{
var txb = document.getElementById(ZysrID);//根据ID获得对象
var pos = 0;//设置初始位置
txb.focus();//输入框获得焦点,这句也不能少,不然后面会出错,血的教训啦.
var s = txb.scrollTop;//获得滚动条的位置
var r = document.selection.createRange();//创建文档选择对象
var t = txb.createTextRange();//创建输入框文本对象
t.collapse(true);//将光标移到头
t.select();//显示光标,这个不能少,不然的话,光标没有移到头.当时我不知道,搞了十几分钟
var j = document.selection.createRange();//为新的光标位置创建文档选择对象
r.setEndPoint("StartToStart",j);//在以前的文档选择对象和新的对象之间创建对象,妈的,不好解释,我表达能力不算太好.有兴趣自己去看msdn的资料
var str = r.text;//获得对象的文本
var re = new RegExp("[\\n]","g");//过滤掉换行符,不然你的文字会有问题,会比你的文字实际长度要长一些.搞死我了.我说我得到的数字怎么总比我的实际长度要长.
str = str.replace(re,"");//过滤
pos = str.length;//获得长度.也就是光标的位置
r.collapse(false);
r.select();//把光标恢复到以前的位置
txb.scrollTop = s;//把滚动条恢复到以前的位置
}
//设置光标函数
function setCaret(id,pos)
{
var textbox = document.all(id);
var r = textbox.createTextRange();
r.collapse(true);
r.moveStart('character',pos);
r.select();
}
function fecthValue() {
var valuea=document.getElementById("contentAddList").value;
var old=document.getElementById("neBoContent").value;
var myValue=document.getElementById("contentAddList").value;
var myField=document.getElementById("neBoContent");
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
var s = myField.scrollTop;
var r = document.selection.createRange();
var t = myField.createTextRange();
t.collapse(true);
t.select();
var j = document.selection.createRange();
r.setEndPoint("StartToStart",j);
var str = r.text;
var re = new RegExp("[\\n]","g");
str = str.replace(re,"");
pos = str.length;
r.collapse(false);
r.select();
myField.scrollTop = s;
}
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
var s = myField.scrollTop;
var r = document.selection.createRange();
var t = myField.createTextRange();
t.collapse(true);
t.select();
var j = document.selection.createRange();
r.setEndPoint("StartToStart",j);
var str = r.text;
var re = new RegExp("[\\n]","g");
str = str.replace(re,"");
pos = str.length;
r.collapse(false);
r.select();
myField.scrollTop = s;
} else {
myField.value += myValue;
var s = myField.scrollTop;
var r = document.selection.createRange();
var t = myField.createTextRange();
t.collapse(true);
t.select();
var j = document.selection.createRange();
r.setEndPoint("StartToStart",j);
var str = r.text;
var re = new RegExp("[\\n]","g");
str = str.replace(re,"");
pos = str.length;
r.collapse(false);
r.select();
myField.scrollTop = s;
}
}
分享到:
相关推荐
### 在Textarea光标处插入文本 #### 知识点概览 本文将详细介绍如何使用JavaScript在`textarea`的光标位置插入文本。该方法适用于多种浏览器环境,包括Internet Explorer(IE)和其他基于Mozilla的浏览器(如Fire...
标题“Textarea在光标停留处插入文字”涉及到的是如何在`Textarea`中实现文字的动态插入,使得新添加的文字能精确地出现在用户当前光标所在的位置。这通常涉及到JavaScript的DOM操作和事件监听。 在HTML中,`...
### 核心知识点:在`textarea`光标处插入内容 #### 1. 理解`textarea`元素 `textarea`是HTML中用于多行文本输入的表单控件。它允许用户输入多行文本,常用于评论、留言等场景。 #### 2. JavaScript选择器 在给定...
在处理`<textarea>`光标位置插入文字并移动光标到文字末尾的操作时,主要涉及两个关键属性:`selectionStart`和`selectionEnd`,以及在IE中使用的`document.selection`对象。 `selectionStart`和`selectionEnd`是...
本文将详细介绍如何使用JavaScript来实现`textarea`滚动条样式的自定义,以实现跨浏览器的兼容性。 首先,我们需要理解CSS3提供了对滚动条样式的一些控制,如`::-webkit-scrollbar`和`::-webkit-scrollbar-thumb`等...
标题“JS在textarea光标处插入文本的小例子”和描述“本实例使用Javascript实现在textarea光标处插入文本,支持多种浏览器”揭示了该文档是关于如何使用JavaScript在网页文本区域(textarea)组件光标所在位置插入...
textarea光标定位在最后,就是往textarea中赋值时候,光标自动移到最后。
针对这些问题,我们可以采用特定的技术来实现 `textarea` 的高度自适应和去除滚动条。 首先,`textarea` 的高度自适应通常通过JavaScript库,如jQuery,来实现。jQuery 是一个强大的JavaScript库,它简化了DOM操作...
本文实例讲述了jQuery往textarea中光标所在... /* 在textarea处插入文本--Start */ (function($) { $.fn.extend({ insertContent : function(myValue, t) { var $t = $(this)[0]; if (document.selection) { //
在IT行业中,尤其是在文本编辑和富文本处理领域,"光标处插入图片(类似于qq表情)"是一个常见的功能需求。这个功能允许用户在文本输入时,像QQ聊天那样,在光标位置方便地插入图片,增强表达的生动性。下面将详细探讨...
无滚动条Textarea自动适用高度.html Textarea
通过Javascript在光标处插入文本 在网页开发中,经常需要在文本框中插入文本,特别是在光标处插入文本。下面,我们将讨论如何使用Javascript在光标处插入文本。 光标位置获取 在获取光标位置之前,我们需要了解...
需要注意的是,当横向和纵向滚动条都隐藏时,如果用户输入的内容超出了textarea的范围,那么超出的内容将不会被显示,除非再次将滚动条显示出来。 除了直接在HTML标签中使用style属性设置外,我们还可以在CSS文件或...
vue通过当前的光标来进行插值,从而需要去获取光标所在的位置然后进行对光标前后的字符串进行截取处理,从而达到对新字符的插入
总结起来,JavaScript在光标处插入指定内容涉及的关键知识点包括:DOM操作、文本选区和光标位置的获取、`Range`对象的使用、`Selection`对象的操作以及富文本编辑器的API。理解并熟练运用这些知识,可以让你在网页...
jQuery扩展函数,用于获取设置textarea中光标位置
textarea滚动条