<!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编程中,获取和设置光标位置是常见的需求,特别是在与用户交互的表单元素如`<input>`和`<textarea>`中。这涉及到DOM(文档对象模型)操作和事件处理,对于创建动态和响应式的网页应用至关重要。本文将...
在JavaScript中,获取和设置光标...以上就是关于JavaScript获取和设置`Input`和`TextArea`元素光标位置的详细解释,包括了兼容性处理的实现。这些方法能够帮助你在各种浏览器环境中控制用户的输入焦点,提升用户体验。
本文将深入探讨如何用JavaScript获取和设置Input和TextArea元素中的光标位置,并提供兼容性处理的方法。 在获取Input或TextArea元素光标位置时,我们需要区分对待IE浏览器和其他现代浏览器。IE浏览器通过document....
"获取和设置输入框光标位置的插件"就是这样一个工具,它允许开发者方便地获取或设定文本输入框中的光标位置,从而提升应用的功能性和用户友好性。 首先,我们需要理解光标在输入框中的作用。光标是用户输入时的指示...
有时,开发者需要获取或操作文本框中的焦点光标位置、选中起始位置、终止位置以及选中的内容,这对于实现诸如高亮显示、文本编辑、格式化等功能至关重要。在本文中,我们将深入探讨这些概念,并提供兼容IE8的解决...
### 在Textarea光标处插入...本文详细介绍了如何在`textarea`的光标位置插入文本的方法,包括IE和非IE浏览器的兼容性处理。通过分析提供的代码示例,我们不仅了解了其实现原理,还学习了如何在实际项目中应用这些知识。
本文将介绍如何在IE、Firefox和Chrome中获取div编辑框、textarea和input text光标位置的方法,并提供相应的代码示例。 首先,了解不同浏览器对于光标位置获取的支持情况是必要的。例如,IE浏览器使用了document....
- 对于`<input type="text">`和`<textarea>`元素来说,光标位置可以帮助开发者了解用户的输入习惯,从而更好地设计交互逻辑。 2. **API介绍**: - **`selectionStart`属性**:用于获取光标的起始位置。 - **`...
特别是在交互式应用中,我们经常需要获取或设置用户输入时的光标位置、选中文字的起始和终止位置,以及获取选中的文字内容。这些功能可以帮助我们实现更丰富的用户交互体验,比如自动补全、高亮显示等。以下是对这些...
在 textarea 中设置光标位置是一个常见的需求,特别是在用户交互场景中,如文本编辑、表单填写等。由于不同的浏览器对某些 API 的支持不同,因此我们需要编写兼容性的代码来处理这个问题。 对于 IE 浏览器,它提供...
在网页开发中,有时我们需要动态地获取或设置文本输入框中的光标位置,以及获取或选中用户已经选中的文本。本文将介绍如何使用JavaScript来实现这些功能。 首先,我们来看看如何获取光标的位置。可以通过一个名为...
在JavaScript中,操作文本输入域,如`<textarea>`,涉及到光标位置的处理时,通常需要使用到浏览器提供的API。对于不同的浏览器,这些API可能会有所差异。在处理`<textarea>`光标位置插入文字并移动光标到文字末尾的...
对于文本输入的处理,很多时候开发者需要获取用户在文本框或文本区域(`<textarea>`)中的光标位置。使用JavaScript实现这一功能,可以通过几种不同的方法来完成。 要获得文本框中光标位置,首先需要明白`<input>`...
因此,可以编写兼容性更强的函数来获取光标位置,例如: ```javascript function getCursorPosition(input) { if ('selectionStart' in input) { return input.selectionStart; } else if (document.selection...
总的来说,获取表单元素中的光标位置是通过JavaScript和jQuery实现的常见需求,虽然不同浏览器的实现方式略有差异,但都可以通过适配代码来兼容。在实际开发中,确保对各种浏览器的兼容性进行充分测试,以确保功能的...
这个例子展示了如何通过JavaScript来定位`textarea`中的光标位置。 首先,我们要理解`textarea`的基本结构。`textarea`是HTML中的一个表单元素,用于用户输入多行文本。它的`rows`和`cols`属性定义了显示的行数和列...
Javascript提供了操作页面元素光标位置的API,让我们可以获取光标当前所在位置,并能够设置光标到特定位置。 首先,要获取光标位置,可以通过编写一个函数`getCaretPosition`来实现。该函数接受一个元素作为参数,...
获取光标位置通常有两种方式:一种是针对IE浏览器的支持,另一种则是对Firefox和其他现代浏览器的支持。 ##### IE支持 对于Internet Explorer(IE)浏览器,可以通过`document.selection`对象来获取光标的位置: ...
在JavaScript和jQuery的世界里,对文本框(input[type="text"]或textarea)的光标位置进行操作是一项常见的需求。这通常涉及到用户交互,比如输入验证、自动补全、富文本编辑器等。"获取和设置文本框的光标位置"这个...
在JavaScript中,获取和设置文本框(input[type="text"])或文本域(textarea)的光标位置是一项常见的任务,特别是在实现用户交互功能时。在不同的浏览器中,处理光标位置的方法有所不同,主要分为IE浏览器和其他非...