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

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

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

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

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

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

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
},
/*
* 設(shè)置光標位置
* @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
* 重新設(shè)置 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;
}
}

相關(guān)文章

  • layui table設(shè)置某一行的字體顏色方法

    layui table設(shè)置某一行的字體顏色方法

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

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

    數(shù)組操作是JavaScript中非常重要也非常常用的技巧,這篇文章主要給大家介紹了關(guān)于前端JavaScript經(jīng)典操作之數(shù)組常用方法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    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事件的相關(guān)知識。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • js函數(shù)模擬顯示桌面.scf程序示例

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

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

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

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

最新評論

蒲城县| 铅山县| 白水县| 江北区| 涿州市| 广水市| 西昌市| 行唐县| 长葛市| 抚顺市| 阜新市| 靖边县| 南溪县| 荃湾区| 丹寨县| 左云县| 新安县| 江山市| 浪卡子县| 聂拉木县| 成安县| 济阳县| 保定市| 凤翔县| 文山县| 康平县| 织金县| 灌云县| 临颍县| 嵊州市| 江源县| 南宫市| 始兴县| 赤峰市| 永州市| 清丰县| 建始县| 卓资县| 涟源市| 承德市| 平邑县|