本文实例讲述了JavaScript让Textarea支持tab按键的方法。分享给大家供大家参考。具体实现方法如下:
HTMLTextAreaElement.prototype.getCaretPosition = function () { //return the caret position of the textarea return this.selectionStart; }; HTMLTextAreaElement.prototype.setCaretPosition = function (position) { //change the caret position of the textarea this.selectionStart = position; this.selectionEnd = position; this.focus(); }; HTMLTextAreaElement.prototype.hasSelection = function () { //if the textarea has selection then return true if (this.selectionStart == this.selectionEnd) { return false; } else { return true; } }; HTMLTextAreaElement.prototype.getSelectedText = function () { //return the selection text return this.value.substring(this.selectionStart, this.selectionEnd); }; HTMLTextAreaElement.prototype.setSelection = function (start, end) { //change the selection area of the textarea this.selectionStart = start; this.selectionEnd = end; this.focus(); }; var textarea = document.getElementsByTagName('textarea')[0]; textarea.onkeydown = function(event) { //support tab on textarea if (event.keyCode == 9) { //tab was pressed var newCaretPosition; newCaretPosition = textarea.getCaretPosition() + " ".length; textarea.value = textarea.value.substring(0, textarea.getCaretPosition()) + " " + textarea.value.substring(textarea.getCaretPosition(), textarea.value.length); textarea.setCaretPosition(newCaretPosition); return false; } if(event.keyCode == 8){ //backspace if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") { //it's a tab space var newCaretPosition; newCaretPosition = textarea.getCaretPosition() - 3; textarea.value = textarea.value.substring(0, textarea.getCaretPosition() - 3) + textarea.value.substring(textarea.getCaretPosition(), textarea.value.length); textarea.setCaretPosition(newCaretPosition); } } if(event.keyCode == 37){ //left arrow var newCaretPosition; if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") { //it's a tab space newCaretPosition = textarea.getCaretPosition() - 3; textarea.setCaretPosition(newCaretPosition); } } if(event.keyCode == 39){ //right arrow var newCaretPosition; if (textarea.value.substring(textarea.getCaretPosition() + 4, textarea.getCaretPosition()) == " ") { //it's a tab space newCaretPosition = textarea.getCaretPosition() + 3; textarea.setCaretPosition(newCaretPosition); } } }
希望本文所述对大家的javascript程序设计有所帮助。
本文向大家介绍javascript实现textarea中tab键的缩排处理方法,包括了javascript实现textarea中tab键的缩排处理方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript实现textarea中tab键的缩排处理方法。分享给大家供大家参考。具体如下: 网上搜索了一下相关的解决方法,其它的有使用两三行javascript解决的,但都有一些小小的问
问题内容: 如何在TextArea中单击Tab键导航到下一个控件? 我可以向cath de键按下事件添加一个侦听器,但是如何使TextArea控件失去焦点(不知道链中的下一个要聚焦的字段)? 问题答案: 如果按TAB键,则此代码遍历焦点;如果按CONTROL + TAB键,则插入标签。
本文向大家介绍让JavaScript中setTimeout支持链式操作的方法,包括了让JavaScript中setTimeout支持链式操作的方法的使用技巧和注意事项,需要的朋友参考一下 修改很简单,通过参数判断,然后返回下promise对象 调用
问题内容: 现在,我正在研究网络爬虫。这个应该解析一些特定的站点,并输出一个xml文件。至此,这没有问题。搜寻器有效,您可以通过cfg文件快速地对其进行自定义。我使用Jsoup解析HTML内容。 我刚刚添加了几个站点,并注意到通过JavaScript创建的HTML内容存在很大的问题。没有办法使Jsoup支持Javascript吗?或者至少获得我在浏览器中可以看到的完整HTML内容。 我已经尝试过H
本文向大家介绍让Nginx支持shtml格式的配置方法,包括了让Nginx支持shtml格式的配置方法的使用技巧和注意事项,需要的朋友参考一下 对于静态网站有公共头尾需要包含,又不想用动态网页编写的,那么shtml是最佳选择了。shtml可以包含指定文件到文档中如同PHP中的include功能类似。 Nginx本身已经支持了shtml格式文件解析,但默认是不开启的,需要手动开启。 打开Nginx配
本文向大家介绍让CodeIgniter的ellipsize()支持中文截断的方法,包括了让CodeIgniter的ellipsize()支持中文截断的方法的使用技巧和注意事项,需要的朋友参考一下 CodeIgniter的Text Helper有一个ellipsize()方法,用来过滤HTML标签并且截断文字十分好用。但是它对中文支持的特别不好,在中文中使用就有乱码出现。 下面有网友将functio