• selectionStart和selectionEnd属性


    在网上看了很多用js在光标处插入文字的代码,很多都没有用,互抄而已,浪费时间。最近用到一个新方法,可以到达这个需求。IE支持document.selection,Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性。

    代码如下:

    01 function insertText(obj,str) {
    02     if (document.selection) {
    03         var sel = document.selection.createRange();
    04         sel.text = str;
    05     } else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
    06         var startPos = obj.selectionStart,
    07             endPos = obj.selectionEnd,
    08             cursorPos = startPos,
    09             tmpStr = obj.value;
    10         obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
    11         cursorPos += str.length;
    12         obj.selectionStart = obj.selectionEnd = cursorPos;
    13     } else {
    14         obj.value += str;
    15     }
    16 }
    17 function moveEnd(obj){
    18     obj.focus();
    19     var len = obj.value.length;
    20     if (document.selection) {
    21         var sel = obj.createTextRange();
    22         sel.moveStart('character',len);
    23         sel.collapse();
    24         sel.select();
    25     } else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') {
    26         obj.selectionStart = obj.selectionEnd = len;
    27     }
    28 }
  • 相关阅读:
    算法实践--最长公共子序列(Longest Common Subsquence)
    算法实践--最长递增子序列(Longest Increasing Subsquence)
    googletest--Death Test和Exception Test
    googletest--测试控制
    googletest--Test Fixture
    googletest基本测试宏
    使用googletest进行C++单元测试(Netbeans为例)
    Boost--optional
    Boost--any
    Boost--variant (C++中的union)
  • 原文地址:https://www.cnblogs.com/xiaoyang002/p/4055716.html
Copyright © 2020-2023  润新知