- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
JavaScript 函数使用 .setSelectionRange() 选择文本区域中的特定单词。
在 Firefox 中,文本区域会自动向下滚动以显示所选文本。在 Chrome (v14) 中,它没有。有没有办法让 Chrome 将文本区域向下滚动到新选择的文本?
欢迎使用 jQuery 解决方案。
最佳答案
这是一个简单而高效的纯 JavaScript 解决方案:
// Get the textarea
var textArea = document.getElementById('myTextArea');
// Define your selection
var selectionStart = 50;
var selectionEnd = 60;
textArea.setSelectionRange(selectionStart, selectionEnd);
// Mow let’s do some math.
// We need the number of characters in a row
var charsPerRow = textArea.cols;
// We need to know at which row our selection starts
var selectionRow = (selectionStart - (selectionStart % charsPerRow)) / charsPerRow;
// We need to scroll to this row but scrolls are in pixels,
// so we need to know a row's height, in pixels
var lineHeight = textArea.clientHeight / textArea.rows;
// Scroll!!
textArea.scrollTop = lineHeight * selectionRow;
把它放在一个函数中,用它扩展 JavaScript 的 Element 对象的原型(prototype),就可以了。
关于JavaScript:在 Chrome 中使用 textarea.setSelectionRange 后滚动到选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464282/
这看起来很简单,但它不起作用: document.getElementById('test').setSelectionRange(3,3) test 谷歌浏览器。 最佳答案 var InputEl
此 Angular Directive(指令)会在数字输入字段中每三位数字自动插入逗号(例如“1000”变为“1,000”)。它在我测试过的所有浏览器中都能正确保留光标位置,但配备三星键盘的三星手机除
我有以下一段 JavaScript,用于将 unicode 字符(下面由 txtToIns 变量表示)动态插入到文本正文中 elmt.value = elmt.value.substring(0, e
我在另一个问题上发现了这个: setCaretToPos = function(input, selectionStart, selectionEnd){ if(input.setSel
我做了一个jsFiddle! http://jsfiddle.net/31mts93v/ 我想创建一个以这种方式运行的输入框:当您按左右箭头键时,它会根据光标所在的位置选择(如鼠标选择)上一个单词或下
我很确定我曾经测试过 setSelectionRange 属性的复选框,但他们没有。但在某些浏览器中,情况似乎发生了变化(已测试 Firefox 和 Chrome)。 我过去常常在进行如下选择之前检查
我正在使用 qunit 框架对我在 Chrome 中使用 jquery(即 var $textarea = $(''))以编程方式创建的 HTML 进行单元测试交互。这是我用来更新文本区域中的选择的代
我之前问过为什么 setSelectionRange 不起作用,答案是因为它只适用于输入字段。但我想尝试使用 contenteditable 属性开发电子表格类型的页面。 window.onkeydo
div 中的文本未被选中。我究竟做错了什么? 要进行测试,请双击 div,键入一些文本,然后单击离开。 Example on CodePen . function editIt(div){
我有一个对话框,其中有一个带有 type="time" 的 HTML5 输入字段。在里面。 当对话框出现时,我想将编辑默认为对话框的“分钟”部分。我看不出有什么办法。 这是 jsFiddle尝试使用的
我想保留 HTML 数字字段的光标位置。 $(element).bind('keyup', function (e) { element.val(f($(this).va
我在下面组装了一个基本的 fiddle 。由于某种原因,我的选择器可以检索文本区域框来设置值,但选择器无法使用 setSelectionRange 函数。在控制台上,您会发现错误:.setSelect
我必须在输入字段中(在输入事件中)手动将插入符位置设置为 0。我需要支持 >= IE9。即使在 IE9 中,只要我进行正常输入(按键盘上的键),它就可以正常工作。但是,一旦我使用复制和粘贴,插入符号就
我最初的问题是 this question 的直接欺骗,尝试将光标放在文本区域的末尾。 one two three|<-- ideal position 它在除 Firefox 之外的所有浏览器上运行
我有一个函数可以选择输入 onclick 的前 5 个字符。这适用于第一次点击。当输入框仍然有焦点时,在 chrome 中,前 5 个字符内的第二次单击会删除选择,插入符号会在单击的位置闪烁。 我希望
我正在尝试在 Angularjs 的指令中执行类似的操作。问题是这在系统中工作正常但是当我在 Android 手机中检查相同时它无法设置插入符号位置。我也查看了几个博客和网站,在 Android 设备
我正在处理一些自动完成代码。 setSelectionRange() 用于在 oninput 事件处理程序中选择已完成的文本。它至少适用于 Firefox 14,但不适用于 Chrome(6、17)。
我试图在用户键入时屏蔽电话号码。我已经在 android 2.x 设备上成功地将下面的 javascript 代码与 jquery 和 setTimeout 解决方法一起使用,但我还没有找到适用于 a
JavaScript 函数使用 .setSelectionRange() 选择文本区域中的特定单词。 在 Firefox 中,文本区域会自动向下滚动以显示所选文本。在 Chrome (v14) 中,它
这个问题修改了 question在 r/reactjs 上。 我有一个受控的输入,我可以通过编程方式更改其值。我想使用.setSelectionRange()为了保持输入中插入符号的位置。 除非这不起
我是一名优秀的程序员,十分优秀!