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

js TextArea的選中區(qū)域處理

 更新時(shí)間:2010年12月28日 23:30:40   作者:  
js中對(duì)于TextArea的選中區(qū)域后進(jìn)行處理的代碼,需要的朋友可以參考下。
(一)獲取Textarea的選中區(qū)域起點(diǎn)或無(wú)選中時(shí)的輸入光標(biāo)位置
  非IE瀏覽器,如,firefox,chrome,支持 selectionStart 獲取選中區(qū)域的起點(diǎn),而IE瀏覽器不支持該屬性,需要間接通過(guò)TextRange來(lái)獲得,利用TextRange對(duì)象的compareEndPoints方法來(lái)進(jìn)行起點(diǎn)的比較可以實(shí)現(xiàn)。
復(fù)制代碼 代碼如下:

getStartPos : function( textarea )
{
if ( typeof textarea.selectionStart != 'undefined' )
{ // 非IE
start = textarea.selectionStart;
}
else
{ // IE
var range = document.selection.createRange();
var range_textarea = document.body.createTextRange();
range_textarea .moveToElementText(textarea);
//比較start point
for ( var sel_start = 0; range_textarea .compareEndPoints('StartToStart' , range) < 0; sel_start++)
range_textarea .moveStart( 'character', 1);
start = sel_start;
} // else

return start;
}

  但有點(diǎn)需要注意的是,在chrome下,如果textarea設(shè)為readonley,那textarea不會(huì)出現(xiàn)輸入光標(biāo),返回的selectionStart與selectionEnd都為0.firefox下則正常。

(二)設(shè)置Textarea中選中的區(qū)域
  類(lèi)似的,非IE的瀏覽器支持setSelectionRange方法指定選中的字符范圍,而IE不支持,也是通過(guò)TextRange來(lái)操作,這里需要注意的是IE下Textarea的選中區(qū)間的相對(duì)位置問(wèn)題。如下面的代碼是先moveStart,moveEnd把起點(diǎn)與終點(diǎn)都設(shè)為0,collapse移動(dòng)生效后,起點(diǎn)不變,先moveEnd移動(dòng)區(qū)間的終點(diǎn),再moveStart移動(dòng)區(qū)間的起點(diǎn),在沒(méi)有改變起點(diǎn)point之前,可以保證相對(duì)位置不變,更容易理解些。
復(fù)制代碼 代碼如下:

   /**
* 設(shè)置textarea的選中區(qū)域
*/
setSelectRange : function( textarea, start, end )
{
if ( typeof textarea.createTextRange != 'undefined' )// IE
{
var range = textarea.createTextRange();
// 先把相對(duì)起點(diǎn)移動(dòng)到0處
range.moveStart( "character", 0)
range.moveEnd( "character", 0);
range.collapse( true); // 移動(dòng)插入光標(biāo)到start處
range.moveEnd( "character", end);
range.moveStart( "character", start);
range.select();
} // if
else if ( typeof textarea.setSelectionRange != 'undefined' )
 {
   textarea.setSelectionRange(start, end);
   textarea.focus();
 } // else
   }

實(shí)現(xiàn)了選中區(qū)域獲取及設(shè)置方法后,其他如文字插入,替換的實(shí)現(xiàn)就比較簡(jiǎn)單了。

相關(guān)文章

最新評(píng)論

新津县| 嵊泗县| 叶城县| 吴川市| 福建省| 黄平县| 邢台县| 泗洪县| 北流市| 萨嘎县| 尼勒克县| 樟树市| 新田县| 贡觉县| 剑川县| 阿拉尔市| 枣庄市| 东乡县| 克拉玛依市| 张家港市| 溆浦县| 萝北县| 东山县| 禄丰县| 诏安县| 呼图壁县| 韶关市| 青海省| 西乌| 大城县| 手游| 南木林县| 崇左市| 革吉县| 鄂尔多斯市| 邹城市| 英超| 凤山县| 昌乐县| 平果县| 牟定县|