`

【转载】获取/设置光标位置,兼容Input TextArea

 
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>JavaScript 获取/设置光标位置,兼容Input&&TextArea。</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<style> 
body { margin: 32px; font-family: Verdana, sans-serif; font-size: 13px; } 
.title { font-size: 18px; font-weight: bolder;margin:40px 0; } 
.input { width: 50%; font-family: Verdana, sans-serif; font-size: 13px; text-indent: 2px; } 
</style> 
<script> 
//获取光标位置 
//单行文本框 
function getPositionForInput(ctrl){ 
var CaretPos = 0; 
if (document.selection) { // IE Support 
ctrl.focus(); 
var Sel = document.selection.createRange(); 
Sel.moveStart('character', -ctrl.value.length); 
CaretPos = Sel.text.length; 
}else if(ctrl.selectionStart || ctrl.selectionStart == '0'){// Firefox support 
CaretPos = ctrl.selectionStart; 
} 
return (CaretPos); 
} 
//多行文本框 
function getPositionForTextArea(ctrl) { 
var CaretPos = 0; 
if(document.selection) {// IE Support 
ctrl.focus(); 
var Sel = document.selection.createRange(); 
var Sel2 = Sel.duplicate(); 
Sel2.moveToElementText(ctrl); 
var CaretPos = -1; 
while(Sel2.inRange(Sel)){ 
Sel2.moveStart('character'); 
CaretPos++; 
} 
}else if(ctrl.selectionStart || ctrl.selectionStart == '0'){// Firefox support 
CaretPos = ctrl.selectionStart; 
} 
return (CaretPos); 
} 
//设置光标位置函数 
function setCursorPosition(ctrl, pos){ 
if(ctrl.setSelectionRange){ 
ctrl.focus(); 
ctrl.setSelectionRange(pos,pos); 
} 
else if (ctrl.createTextRange) { 
var range = ctrl.createTextRange(); 
range.collapse(true); 
range.moveEnd('character', pos); 
range.moveStart('character', pos); 
range.select(); 
} 
} 
//test 
function process( id,targetId ){ 
var no = document.getElementById(id).value; 
setCursorPosition(document.getElementById(targetId),no); 
} 
</script> 
</head> 
<body> 
<div class="title">JavaScript 获取/设置光标位置,兼容Input&&TextArea:</div> 
<div class="title">单行文本框</div> 
<p><input class="input" id="textbox" name="textbox" value="Hi,www.jb51.net!!!" /></p> 

<input type="button" onclick="alert( getPositionForInput( document.getElementById('textbox') ) )" value="Get Position"> 
输入位置: <input type="text" id="no1" size="1" /><input type="button" onclick="process('no1','textbox');" value="Set Position"> 

<div class="title">多行文本框</div> 
<textarea id="zhangdanNum" name="zhangdanNum" style="height:66px;width:246px;overflow:hidden">Hi,CssRain!!!</textarea> 
<input type="button" onclick="alert( getPositionForTextArea( document.getElementById('zhangdanNum') ) )" value="Get Position"> 
输入位置: <input type="text" id="no2" size="1" /><input type="button" onclick="process('no2','zhangdanNum');" value="Set Position"> 
</body> 
</html>

 

分享到:
评论

相关推荐

    JavaScript获取,设置光标位置,兼容InputTextArea

    在JavaScript编程中,获取和设置光标位置是常见的需求,特别是在与用户交互的表单元素如`&lt;input&gt;`和`&lt;textarea&gt;`中。这涉及到DOM(文档对象模型)操作和事件处理,对于创建动态和响应式的网页应用至关重要。本文将...

    JavaScript 获取/设置光标位置,兼容InputTextArea

    在JavaScript中,获取和设置光标...以上就是关于JavaScript获取和设置`Input`和`TextArea`元素光标位置的详细解释,包括了兼容性处理的实现。这些方法能够帮助你在各种浏览器环境中控制用户的输入焦点,提升用户体验。

    JavaScript 获取/设置光标位置,兼容Input&amp;&amp;TextArea

    本文将深入探讨如何用JavaScript获取和设置Input和TextArea元素中的光标位置,并提供兼容性处理的方法。 在获取Input或TextArea元素光标位置时,我们需要区分对待IE浏览器和其他现代浏览器。IE浏览器通过document....

    获取和设置输入框光标位置的插件

    "获取和设置输入框光标位置的插件"就是这样一个工具,它允许开发者方便地获取或设定文本输入框中的光标位置,从而提升应用的功能性和用户友好性。 首先,我们需要理解光标在输入框中的作用。光标是用户输入时的指示...

    JS获取文本框焦点光标位置、选中起始位置、终止位置、选择内容

    有时,开发者需要获取或操作文本框中的焦点光标位置、选中起始位置、终止位置以及选中的内容,这对于实现诸如高亮显示、文本编辑、格式化等功能至关重要。在本文中,我们将深入探讨这些概念,并提供兼容IE8的解决...

    在textarea光标处插入文本

    ### 在Textarea光标处插入...本文详细介绍了如何在`textarea`的光标位置插入文本的方法,包括IE和非IE浏览器的兼容性处理。通过分析提供的代码示例,我们不仅了解了其实现原理,还学习了如何在实际项目中应用这些知识。

    获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍

    本文将介绍如何在IE、Firefox和Chrome中获取div编辑框、textarea和input text光标位置的方法,并提供相应的代码示例。 首先,了解不同浏览器对于光标位置获取的支持情况是必要的。例如,IE浏览器使用了document....

    javascript获得光标所在的文本框(text textarea)中的位置.docx

    - 对于`&lt;input type="text"&gt;`和`&lt;textarea&gt;`元素来说,光标位置可以帮助开发者了解用户的输入习惯,从而更好地设计交互逻辑。 2. **API介绍**: - **`selectionStart`属性**:用于获取光标的起始位置。 - **`...

    JS获取文本框光标位置、选中起始位置、终止位置、选择内容

    特别是在交互式应用中,我们经常需要获取或设置用户输入时的光标位置、选中文字的起始和终止位置,以及获取选中的文字内容。这些功能可以帮助我们实现更丰富的用户交互体验,比如自动补全、高亮显示等。以下是对这些...

    javascript textarea光标定位方法(兼容IE和FF)

    在 textarea 中设置光标位置是一个常见的需求,特别是在用户交互场景中,如文本编辑、表单填写等。由于不同的浏览器对某些 API 的支持不同,因此我们需要编写兼容性的代码来处理这个问题。 对于 IE 浏览器,它提供...

    javascript获取以及设置光标位置

    在网页开发中,有时我们需要动态地获取或设置文本输入框中的光标位置,以及获取或选中用户已经选中的文本。本文将介绍如何使用JavaScript来实现这些功能。 首先,我们来看看如何获取光标的位置。可以通过一个名为...

    JS在TextArea光标位置插入文字并实现移动光标到文字末尾

    在JavaScript中,操作文本输入域,如`&lt;textarea&gt;`,涉及到光标位置的处理时,通常需要使用到浏览器提供的API。对于不同的浏览器,这些API可能会有所差异。在处理`&lt;textarea&gt;`光标位置插入文字并移动光标到文字末尾的...

    javascript获得光标所在的文本框(text/textarea)中的位置

    对于文本输入的处理,很多时候开发者需要获取用户在文本框或文本区域(`&lt;textarea&gt;`)中的光标位置。使用JavaScript实现这一功能,可以通过几种不同的方法来完成。 要获得文本框中光标位置,首先需要明白`&lt;input&gt;`...

    js 获取光标在文本框中的位置

    因此,可以编写兼容性更强的函数来获取光标位置,例如: ```javascript function getCursorPosition(input) { if ('selectionStart' in input) { return input.selectionStart; } else if (document.selection...

    获取表单中当前光标位置

    总的来说,获取表单元素中的光标位置是通过JavaScript和jQuery实现的常见需求,虽然不同浏览器的实现方式略有差异,但都可以通过适配代码来兼容。在实际开发中,确保对各种浏览器的兼容性进行充分测试,以确保功能的...

    将光标定位到textarea的某一行的javascript代码

    这个例子展示了如何通过JavaScript来定位`textarea`中的光标位置。 首先,我们要理解`textarea`的基本结构。`textarea`是HTML中的一个表单元素,用于用户输入多行文本。它的`rows`和`cols`属性定义了显示的行数和列...

    Javascript实现获取及设置光标位置的方法

    Javascript提供了操作页面元素光标位置的API,让我们可以获取光标当前所在位置,并能够设置光标到特定位置。 首先,要获取光标位置,可以通过编写一个函数`getCaretPosition`来实现。该函数接受一个元素作为参数,...

    光标定位方法

    获取光标位置通常有两种方式:一种是针对IE浏览器的支持,另一种则是对Firefox和其他现代浏览器的支持。 ##### IE支持 对于Internet Explorer(IE)浏览器,可以通过`document.selection`对象来获取光标的位置: ...

    获取和设置文本框的光标位置

    在JavaScript和jQuery的世界里,对文本框(input[type="text"]或textarea)的光标位置进行操作是一项常见的需求。这通常涉及到用户交互,比如输入验证、自动补全、富文本编辑器等。"获取和设置文本框的光标位置"这个...

    js获取光标位置和设置文本框光标位置示例代码

    在JavaScript中,获取和设置文本框(input[type="text"])或文本域(textarea)的光标位置是一项常见的任务,特别是在实现用户交互功能时。在不同的浏览器中,处理光标位置的方法有所不同,主要分为IE浏览器和其他非...

Global site tag (gtag.js) - Google Analytics