最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js封裝的textarea操作方法集合(兼容很好)

 更新時間:2010年11月16日 23:09:49   作者:  
對應用到對textarea處理的朋友可以參考下??刂频谋容^不錯的代碼封裝。
雖然你現(xiàn)在看來沒什么用,當要用的時候又到處找資料,還不如現(xiàn)在收集一下。

在DOM里面操作textarea里面的字符,是比較麻煩的。

于是我有這個封裝分享給大家,測試過IE6,8, firefox ,chrome, opera , safari。兼容沒問題。

注意:在firefox下 添加字符串的時候有個bug 就是scrollTop 會等于0,當然解決了,但是不夠完美。如果有高手也研究過,麻煩指點下。
復制代碼 代碼如下:

var TT = {
/*
* 獲取光標位置
* @Method getCursorPosition
* @param t element
* @return number
*/
getCursorPosition: function(t){
if (document.selection) {
t.focus();
var ds = document.selection;
var range = ds.createRange();
var stored_range = range.duplicate();
stored_range.moveToElementText(t);
stored_range.setEndPoint("EndToEnd", range);
t.selectionStart = stored_range.text.length - range.text.length;
t.selectionEnd = t.selectionStart + range.text.length;
return t.selectionStart;
} else return t.selectionStart
},
/*
* 設置光標位置
* @Method setCursorPosition
* @param t element
* @param p number
* @return
*/
setCursorPosition:function(t, p){
this.sel(t,p,p);
},
/*
* 插入到光標后面
* @Method add
* @param t element
* @param txt String
* @return
*/
add:function (t, txt){
var val = t.value;
if(document.selection){
t.focus()
document.selection.createRange().text = txt;
} else {
var cp = t.selectionStart;
var ubbLength = t.value.length;
var s = t.scrollTop;
// document.getElementById('aaa').innerHTML += s + '<br/>';
t.value = t.value.slice(0,t.selectionStart) + txt + t.value.slice(t.selectionStart, ubbLength);
this.setCursorPosition(t, cp + txt.length);
// document.getElementById('aaa').innerHTML += t.scrollTop + '<br/>';
firefox=navigator.userAgent.toLowerCase().match(/firefox\/([\d\.]+)/) && setTimeout(function(){
if(t.scrollTop != s) t.scrollTop=s;
},0)
};
},
/*
* 刪除光標 前面或者后面的 n 個字符
* @Method del
* @param t element
* @param n number n>0 后面 n<0 前面
* @return
* 重新設置 value 的時候 scrollTop 的值會被清0
*/
del:function(t, n){
var p = this.getCursorPosition(t);
var s = t.scrollTop;
var val = t.value;
t.value = n > 0 ? val.slice(0, p - n) + val.slice(p):
val.slice(0, p) + val.slice(p - n);
this.setCursorPosition(t ,p - (n < 0 ? 0 : n));
firefox=navigator.userAgent.toLowerCase().match(/firefox\/([\d\.]+)/) && setTimeout(function(){
if(t.scrollTop != s) t.scrollTop=s;
},10)
},
/*
* 選中 s 到 z 位置的文字
* @Method sel
* @param t element
* @param s number
* @param z number
* @return
*/
sel:function(t, s, z){
if(document.selection){
var range = t.createTextRange();
range.moveEnd('character', -t.value.length);
range.moveEnd('character', z);
range.moveStart('character', s);
range.select();
}else{
t.setSelectionRange(s,z);
t.focus();
}
},
/*
* 選中一個字符串
* @Method sel
* @param t element
* @param s String
* @return
*/
selString:function(t, s){
var index = t.value.indexOf(s);
index != -1 ? this.sel(t, index, index + s.length) : false;
}
}

相關文章

  • layui table設置某一行的字體顏色方法

    layui table設置某一行的字體顏色方法

    今天小編就為大家分享一篇layui table設置某一行的字體顏色方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 前端JavaScript經(jīng)典操作之數(shù)組常用方法總結

    前端JavaScript經(jīng)典操作之數(shù)組常用方法總結

    數(shù)組操作是JavaScript中非常重要也非常常用的技巧,這篇文章主要給大家介紹了關于前端JavaScript經(jīng)典操作之數(shù)組常用方法的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • js實現(xiàn)彈窗暗層效果

    js實現(xiàn)彈窗暗層效果

    本文主要分享了js實現(xiàn)彈窗暗層效果的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • JavaScript如何從listbox里同時刪除多個項目

    JavaScript如何從listbox里同時刪除多個項目

    要從列表框同時刪除多個項目只能從下向上刪除,這樣就不會出現(xiàn)索引號亂變的問題了,下面有個不錯的示例,大家可以感受下
    2013-10-10
  • 原生JS實現(xiàn)各種運動之勻速運動

    原生JS實現(xiàn)各種運動之勻速運動

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)各種運動之勻速運動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 淺談webpack性能榨汁機(打包速度優(yōu)化)

    淺談webpack性能榨汁機(打包速度優(yōu)化)

    這篇文章主要介紹了淺談webpack性能榨汁機(打包速度優(yōu)化),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Javascript在HTML中顯示實時時間

    使用Javascript在HTML中顯示實時時間

    這篇文章主要為大家詳細介紹了使用Javascript在HTML中顯示實時時間,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 詳解jQuery事件

    詳解jQuery事件

    本文主要介紹了jQuery事件的相關知識。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • js函數(shù)模擬顯示桌面.scf程序示例

    js函數(shù)模擬顯示桌面.scf程序示例

    這篇文章主要介紹了一個模擬顯示桌面.scf程序的JS小函數(shù),需要的朋友可以參考下
    2014-04-04
  • 前端JavaScript?6?種主流接口請求技術全解

    前端JavaScript?6?種主流接口請求技術全解

    這篇文章主要介紹了前端JavaScript?6?種主流接口請求技術的相關資料,包括XMLHttpRequest、FetchAPI、Axios、jQueryAjax、WebSocket和GraphQL,并提供了每種方案的基礎用法、高級配置、優(yōu)點、缺點及適用場景,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03

最新評論

红原县| 青冈县| 建德市| 乌鲁木齐县| 亳州市| 惠东县| 衡阳市| 宜黄县| 包头市| 江城| 陇南市| 资中县| 安化县| 大庆市| 土默特右旗| 高邮市| 天气| 南川市| 乌兰浩特市| 苏州市| 绥江县| 康乐县| 星子县| 江达县| 吴江市| 万源市| 锦州市| 六盘水市| 盐边县| 晋城| 西华县| 周至县| 阿城市| 民权县| 西乌| 闵行区| 桂东县| 禄丰县| 浑源县| 芦溪县| 会昌县|