javascript函数使用.setSelectionRange()在textarea中选择某个单词.在Firefox中,文本区域自动向下滚动以显示所选文本.在Chrome(v14)中,没有.有没有办法让Chrome滚动文本区域到新选择的文本?欢迎jQuery解决方案
解决方法
这是一个简单有效的解决方案,纯js:
//first of all,you ignore any bad english,as i'm french and had a funny evening //get the textarea var textArea = document.getElementById('myTextArea'); //define your selection var selectionStart = 50; var selectionEnd = 60; textArea.setSelectionRange( selectionStart,selectionEnd); // Now lets do some math // we need the number of chars 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对象的原型,你很好.
随时问你是否需要进一步的帮助.
原文地址:https://www.jb51.cc/js/154919.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。