亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript中textRange對象使用方法小結(jié)

2019-11-20 12:52:13
字體:
供稿:網(wǎng)友

TextRange對象是動(dòng)態(tài)HTML(DHTML)的高級特性,使用它可以實(shí)現(xiàn)很多和文本有關(guān)的任務(wù),例如搜索和選擇文本。文本范圍讓您可以選擇性的將字符、單詞和句子從文檔中挑選出來。TextRange對象是在HTML文檔將要顯示的文本流上建立開始和結(jié)束位置的抽象對象。

  下面是TextRange的常用屬性與方法:

 屬性

boundingHeight 獲取綁定TextRange對象的矩形的高度
boundingLeft 獲取綁定TextRange 對象的矩形左邊緣和包含TextRange對象的左側(cè)之間的距離
offsetLeft 獲取對象相對于版面或由offsetParent屬性指定的父坐標(biāo)的計(jì)算左側(cè)位置
offsetTop 獲取對象相對于版面或由offsetParent屬性指定的父坐標(biāo)的計(jì)算頂端位置
htmlText 獲取綁定TextRange對象的矩形的寬度
text 設(shè)置或獲取范圍內(nèi)包含的文本
 方法

moveStart 更改范圍的開始位置
moveEnd 更改范圍的結(jié)束位置
collapse 將插入點(diǎn)移動(dòng)到當(dāng)前范圍的開始或結(jié)尾
move 折疊給定文本范圍并將空范圍移動(dòng)給定單元數(shù)
execCommand 在當(dāng)前文檔、當(dāng)前選中區(qū)或給定范圍上執(zhí)行命令
select 將當(dāng)前選擇區(qū)置為當(dāng)前對象
findText 在文本中搜索文本并將范圍的開始和結(jié)束點(diǎn)設(shè)置為包圍搜索字符串。
  使用TextRange對象通常包括三個(gè)基本的步驟:

  1.創(chuàng)建文本范圍

  2.設(shè)置開始點(diǎn)和結(jié)束點(diǎn)

  3.對范圍進(jìn)行操作

復(fù)制代碼 代碼如下:

<script language="javascript"> 
function moveCursor() 

    var temp = this.txtNum.value;  
    if(isNaN(temp)) 
    { 
     alert("請輸入一個(gè)數(shù)字"); 
     return; 
    } 
    var rng = this.txtTest.createTextRange(); 
    rng.move("character",temp); 
    rng.select();    
}  
</script> 
</HEAD> 
<BODY> 
<input type="text" name="txtTest" value="明?羅貫中《三國演義》第二十一回 操曰:“夫英雄者,胸懷大志,腹有良謀,有包藏宇宙之機(jī),吞吐天地之志者也。" size="100"><br> 
移動(dòng)光標(biāo)到第<input type="text" name="txtNum" size="5">個(gè)位置 
<input type="button" name="btnMove" value="移動(dòng)" onclick="moveCursor()">  
</BODY>

  1.createTextRange()

  創(chuàng)建一個(gè)TextRange對象,BODY、TEXT、TextArea、BUTTON等元素都支持這個(gè)方法。該方法返回一個(gè)TextRange對象。

  2.move(”Unit”[,count])

  move()方法執(zhí)行兩個(gè)操作。首先,方法在前一個(gè)結(jié)束點(diǎn)的位置重疊當(dāng)前文檔,將這里作為一個(gè)插入點(diǎn);下一步,它將插入點(diǎn)向前或向后移動(dòng)任意個(gè)字符、單詞或句子單位。

  方法的第一個(gè)參數(shù)是字符串,它指定的單位有character(字符)、word(詞)、sentence(段落)、textedit。 textedit值將插入點(diǎn)移動(dòng)到整個(gè)文本范圍的結(jié)束處(不需要參數(shù))。如果指定為前三種單位,忽略參數(shù)時(shí)默認(rèn)值為1,也可以指定一個(gè)整數(shù)值來指示單元 數(shù),正數(shù)代表向前移動(dòng),負(fù)數(shù)代表向后移動(dòng)。

  注意在move()方法執(zhí)行后范圍仍是重疊的。

  3.select()

  select()方法選擇當(dāng)前文本范圍內(nèi)的文本,這里的顯示光標(biāo)也必須利用它來實(shí)現(xiàn),因?yàn)樗^的”光標(biāo)”可以理解為邊界重合的范圍

復(fù)制代碼 代碼如下:

<BODY> 
<textarea name="txtBox" rows="7" cols="50" id="txtBox"> 
菊花臺 (滿城盡帶黃金甲主題曲)  
歌手:周杰倫 專輯:依然范特西  
你的淚光 柔弱中帶傷  
慘白的月彎彎 勾住過往  
夜太漫長 凝結(jié)成了霜  
是誰在閣樓上冰冷的絕望  
雨輕輕淌 朱紅色的窗  
我一生在紙上 被風(fēng)吹亂  
夢在遠(yuǎn)方 化成一縷霞  
隨風(fēng)飄散 你的模樣  
菊花慘淡地傷 你的笑容已泛黃  
花落人斷腸 我心事靜靜淌  
北風(fēng)亂夜未央 你的影子剪不斷  
徒留我孤單在湖面生霜  
</textarea><br> 
<input type="text" value="輸入要查詢的內(nèi)容" id="txtFind"> 
<input type="button" value="查找下一個(gè)" onclick="findText(txtFind.value)"> 
<script language="javascript"> 
var rng = txtBox.createTextRange(); 
function findText(str) 

   if(str=="") 
   return; 
   //定義一個(gè)變量,作為moveStart()函數(shù)的偏移量,即開始點(diǎn)跳過選擇文本 
   var num = 0; 
   if(document.selection)    
     num = document.selection.createRange().text.length; 
       //每次調(diào)用函數(shù),結(jié)束點(diǎn)都為末尾,而開始點(diǎn)是跳過選擇文本后的新開始點(diǎn)  
       rng.moveStart("character",num); 
       rng.moveEnd("character",txtBox.value.length); 
       //搜索到后選擇文本    
   if(rng.findText(str)) 
    rng.select(); 
   //搜索到最后的范圍還是找不到,則提示搜索完畢,并重新恢復(fù)rng最初的范圍(否則無法執(zhí)行新搜索)    
   if(rng.text!=str) 
   {    
       alert("搜索完畢"); 
       rng = txtBox.createTextRange(); 
   } 
}    
</script>  
</BODY>

  上面的例子演示了利用moveStart()和moveEne()方法選擇范圍,出現(xiàn)的幾個(gè)方法的說明如下:

  4.moveStart(”Unit”[,count])與moveEnd(”Unit”[,count])

  moveStart()與moveEnd()方法類似于move()方法,默認(rèn)情況下開始點(diǎn)為容器第一個(gè)字符、結(jié)束點(diǎn)為最后一個(gè)字符

  我們可以修改上面的selectText()函數(shù)來證明:

復(fù)制代碼 代碼如下:

function selectText()
{
  var rng = txtBox.createTextRange();
  rng.moveStart("character",1);
  rng.moveEnd("character",-1);
  rng.select();
}

  將開始點(diǎn)向前移動(dòng)一個(gè)字符、結(jié)束點(diǎn)向后移動(dòng)一個(gè)字符,運(yùn)行后可以看到選擇的范圍是除第1個(gè)字符和最后1個(gè)字符的整個(gè)文本范圍。

  5.collapse([Boolean])

  可以用collapse()方法把文本范圍從當(dāng)前尺寸重疊成字符間的單個(gè)插入點(diǎn)。collapse()方法的可選參數(shù)是Boolean值,它指出范圍是在當(dāng)前范圍的開始點(diǎn)重合,還是結(jié)束點(diǎn)重合。默認(rèn)值為true,在開始點(diǎn)重合:

  6.findText(”searchString”[,searchScope,flags])

  TextRange對象最有用的方法之一是findText()方法,其默認(rèn)行為是從開始點(diǎn)到結(jié)束點(diǎn)瀏覽文本范圍,搜索一個(gè)不區(qū)分大小寫的字符串 匹配。如果在范圍中發(fā)現(xiàn)一個(gè)實(shí)例,范圍的開始點(diǎn)和結(jié)束點(diǎn)就放到這個(gè)文本中,方法返回true;否則返回false,開始點(diǎn)和結(jié)束點(diǎn)都不動(dòng)。方法僅搜索顯示 文本,而任何標(biāo)記或?qū)傩远疾粫?huì)被搜索。

  可選參數(shù)searchScope是一個(gè)整數(shù)值,它指示從開始點(diǎn)的字符數(shù),值越大,包含在搜索范圍的文本越多;負(fù)值將迫使搜索操作從當(dāng)前開始點(diǎn)向后搜索。

  可選參數(shù)flag用來設(shè)置搜索是否區(qū)分大小寫,或者是否僅匹配整個(gè)單詞。參數(shù)是整數(shù)值,它用按位組合的數(shù)學(xué)方法計(jì)算單個(gè)值,這些值能容納一個(gè)或多 個(gè)設(shè)置。匹配整個(gè)單詞的值為2;匹配大小寫的值為4;如果只想匹配一項(xiàng),則只提供希望的值就夠了,但對于兩種行為,要用位操作XOR操作符(^操作符)使 值為6。

  findText()方法最常用的應(yīng)用包括范圍中的查找和替換操作,以及格式化一個(gè)字符串的實(shí)例,因?yàn)樗阉魍ǔR苑秶漠?dāng)前開始點(diǎn)開始,所以再次 查詢要將開始點(diǎn)移到范圍中匹配文本的末尾(如示例3),移動(dòng)后才能使findText()繼續(xù)瀏覽剩下的文本范圍,來查找另一個(gè)匹配。可以使用 collapse(false)方法迫使開始點(diǎn)移動(dòng)第一個(gè)匹配的范圍的結(jié)束點(diǎn)。所以示例3的findText()函數(shù)也可以修改為:

復(fù)制代碼 代碼如下:

<script language="javascript">
var rng = txtBox.createTextRange();
function findText(str)
{
    if(str=="")
    return;
    if(rng.findText(str))
   {
     rng.select();
   rng.collapse(false);
     }
    //搜索到最后的范圍還是找不到,則提示搜索完畢,并重新恢復(fù)rng最初的范圍(否則無法執(zhí)行新搜索)  
    else
     {  
     alert("搜索完畢");
     rng = txtBox.createTextRange();
     }
}  
</script>

  6.parentElement()

  parentElement()方法返回包含文本范圍容器的引用

  獲得光標(biāo)選中文本的DOM對象

復(fù)制代碼 代碼如下:

<script> 
function getParElem() 

    var rng = document.selection.createRange(); 
    var container = rng.parentElement(); 
    //alert(container.getAttribute("id")||container.getAttribute("value")||container.getAttribute("type")); 
    alert(container.tagName); 

</script> 
</HEAD> 
<BODY> 
這是只屬于Body的文本 
<div>這是包含在div里的文本</div> 
<p>這是包含在p里面的文本</p> 
<div><strong>這是包含在div->strong里的文本</strong></div> 
<input type="button" value="選擇文本后點(diǎn)擊" onClick="getParElem()"> 
</BODY>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
第一社区sis001原创亚洲| 99在线精品视频免费观看20| 一本色道久久综合亚洲aⅴ蜜桃| 奇米色777欧美一区二区| 国产福利视频一区二区| 国产亚洲综合精品| 亚洲专区国产精品| h版电影在线播放视频网站| 欧美乱熟臀69xxxxxx| 少妇高潮一区二区三区99小说| 在线视频观看一区二区| 97碰碰视频| 国产一区欧美二区三区| 日本丰满少妇做爰爽爽| 又色又爽又黄18网站| 国产喷水吹潮视频www| 欧美成人专区| 久久人人爽爽人人爽人人片av| 老司机精品视频网| 国产最新在线| 乱熟女高潮一区二区在线| 中文字幕在线观看免费| 免费h视频网站| 伊人久久大香线蕉综合热线| 美女被艹视频网站| 一区二区三区黄色片| av片中文字幕| 国产精品嫩草影院俄罗斯| 日韩精品a在线观看91| 国产一线二线三线女| 一区二区三区四区视频| 色一情一乱一伦一视频免费看| 26uuu精品一区二区| 欧美成人精品一区二区免费看片| 男人的天堂在线视频免费观看| 国产亚洲网站| 宅男网站在线免费观看| 日韩经典一区二区| 亚洲女同女同女同女同女同69| 国产高清无密码一区二区三区| 97视频免费在线| 日韩亚洲在线| 亚洲欧美国内爽妇网| 97在线国产视频| 亚洲欧美激情一区二区三区| heyzo在线观看| 久久国产福利国产秒拍| 91免费视频网| 中文字幕在线永久在线视频| 99re6热在线精品视频播放| 在线精品视频小说1| 在线免费黄色毛片| 中文字幕+乱码+中文字幕| 国产精品无码久久久久| 日韩精品一区二区三区中文精品| 亚洲最新av| 欧美另类videoxo高潮| 午夜视频精品| 北岛玲heyzo一区二区| 久久久97精品| 国产午夜亚洲精品一级在线| 涩涩视频免费网站| 老司机免费视频一区二区| 一本色道久久综合狠狠躁篇怎么玩| 免费福利视频一区| 一区二区三区四区不卡在线| 亚洲色图网站| 亚洲国产精品18久久久久久| 国产精品免费观看高清| 日韩久久一区二区三区| 亚洲成人日韩| 欧美人妖巨大在线| 国产精品成人免费在线| 日本小视频网站| 国产精品综合一区二区三区| 日韩免费电影一区二区| 在线播放亚洲激情| 免费电影一区二区三区| 久久午夜影视| 青青操在线观看视频| 日本道免费精品一区二区三区| 91亚洲国产成人精品一区二区三| 91精品xxx在线观看| 久久精品日韩| 2019中文在线观看| 久久资源亚洲| 无码一区二区三区| 97国产精品久久久| 99热久久这里只有精品| 性xxxfllreexxx少妇| 视频在线一区二区三区| 亚洲www啪成人一区二区麻豆| 亚洲欧美日本韩国| av成人免费看| 天天夜夜亚洲| 久久久久久草| 日韩精品成人免费观看视频| 亚洲精品久久久久久一区二区| 我不卡手机影院| 亚洲国产免费av| 国产3p露脸普通话对白| 国产一二三区在线视频| 四虎影视精品永久在线观看| 国产精品186在线观看在线播放| 在线观看不卡av| 国产露脸无套对白在线播放| 青青操在线视频| 国产激情第一页| 成a人片国产精品| 91成人性视频| 欧美18av| 中日韩脚交footjobhd| avtt香蕉久久| 亚洲国产三级网| 欧美6699在线视频免费| 99久久婷婷国产综合精品青牛牛| 欧美性猛交xxxx黑人猛交| 亚洲色图综合久久| 欧美激情图片区| 992tv成人免费视频| 国产精品第七页| 性少妇xx生活| 特级西西444www大胆免费看| 91成品人片a无限观看| 国产99在线免费| 91在线视频播放地址| 欧美日韩黄色网| 不卡一区二区三区四区| 九九久久电影| 亚洲高清在线播放| 国模gogo一区二区大胆私拍| ady日本映画久久精品一区二区| 久久婷婷丁香| 欧美一级片在线免费观看| 欧美1级日本1级| 亚洲精品日韩久久| 精品人在线二区三区| 久久久av一区| 亚洲一区二区三区777| 丰满人妻一区二区三区无码av| 欧美体内she精视频| 国内外成人免费视频| 人妻精品久久久久中文字幕69| 福利欧美精品在线| 91麻豆精品久久毛片一级| 欧美日韩三级一区二区| 国产精品久久久久久户外露出| 亚洲精品日韩成人| 国产河南妇女毛片精品久久久| 最近中文字幕在线6| 亚洲色图综合网| 日韩中文字幕不卡| 国产天堂视频| 日韩国产高清一区| 天涯成人国产亚洲精品一区av| 一级做a爱视频| 丁香婷婷久久久综合精品国产| 日韩欧美高清在线观看| 国产精品免费一区二区三区四区| 日本免费一区二区三区视频| 久久亚洲在线| 一区二区三区电影网| 校园春色亚洲色图| 日批视频免费在线观看| gai在线观看免费高清| 在线欧美小视频| 午夜一区二区三区四区| 国产精品色一区二区三区| 黄色片视频在线观看| 草莓视频性福宝| 国产精品久久久久久久久男| 欧美日韩免费不卡视频一区二区三区| www久久久久久| 国产精品美女久久久久av爽| 久草免费福利视频| 国产丝袜在线观看视频| 免费av网站在线播放| 嫩草影院网站在线| 99re在线视频免费观看| 欧美插插视频| 狠狠鲁狠狠操| 亚洲国产精品一区在线观看不卡| 成人激情在线观看| 美女毛片一区二区三区四区| 日本一级特级毛片视频| 老牛影视免费一区二区| 亚洲精品网址在线观看| 国产麻豆91视频| 国产日韩中文在线中文字幕| 中文字幕色一区二区| 在线免费看黄av| 国产乱码精品一区二区三区精东| 国产精品美女www爽爽爽视频| 欧美日韩国产一区二区三区| 国内精品久久久久久久久久久| 伊人久久综合| 国产精品一区二区99| 亚洲最大成人网站| 91精品在线播放| 最近免费中文字幕在线第一页| 天天摸天天舔天天操| 亚洲色婷婷久久精品av蜜桃| 久久国产成人午夜av影院| 伊人色**天天综合婷婷| 女人帮男人橹视频播放| 欧美精品一区二区成人| 国产麻豆精品一区二区| 日本成人在线视频网址| 少妇人妻偷人精品一区二区| 麻豆高清免费国产一区| 日韩成人在线一区| 2022国产麻豆剧果冻传媒剧情| 国产欧美日韩网站| 麻豆成人在线| 四虎精品影院在线观看视频| 免费男女羞羞的视频网站中文子暮| 亚洲日本在线观看视频| 亚洲国产aⅴ精品| 99久久99久久精品免费观看| 成人一区二区视频| 在线免费观看黄色网址| 亚洲自拍偷拍网| 国产午夜精品理论片a级大结局| 欧美一级三级| 精品国产伦一区二区三区免费| 在线观看欧美理论a影院| 香蕉网站在线| 欧美婷婷久久| 国产又猛又黄的视频| 超碰97在线免费观看| 欧洲午夜精品| www.成人在线视频| 中文字幕欧美日韩在线不卡| 日韩欧美一区中文| 天天干天天草天天射| 国产成人免费视频精品含羞草妖精| 精品调教chinesegay| 欧美高清一区| 国产一区二区视频在线免费观看| 三级一区在线视频先锋| 色视频在线观看免费| 蜜桃视频涩涩| 国产婷婷色一区二区在线观看| 国产欧美在线观看免费| 久久精品无码一区二区三区| 国产精品123| 成人在线免费小视频| 白白色亚洲国产精品| 国产三级一区| 国产精品无码自拍| wwwwww欧美| 懂色av蜜臀av粉嫩av分享吧最新章节| 青草青草久热精品视频在线网站| 羞羞视频在线免费国产| www.国产免费| 亚洲人成电影网站色www| 中文字幕永久在线| 国产一区二区三区亚洲综合| 欧美色综合一区二区三区| 国产精品福利观看| 成人欧美一区二区三区黑人| 久草热在线观看| 成人av网在线| 欧美777四色影| 精品欧美一区二区三区免费观看| 国产午夜亚洲精品午夜鲁丝片| 国产精品久久久久久久免费大片| 中文字幕21页在线看| 欧亚一区二区三区| 丰满人妻一区二区三区53视频| 国内外成人免费在线视频| 女人十八毛片嫩草av| 麻豆成人在线视频| 热久久免费视频| 中文字幕av一区二区三区免费看| 日韩国产在线一区| 一区二区三区 在线观看视| 黄页网址大全在线观看| 国内一区二区在线| 欧美激情欧美激情| 欧美天堂一区二区三区| 精品国产无码一区二区三区| 五月婷在线视频| 欧美黄色免费影院| 日韩av资源在线播放| 1234区在线观看视频免费| 97人人做人人人难人人做| 久久精品女人毛片国产| www.成人三级视频| 夜夜嗨av色综合久久久综合网| 久久久一区二区三区四区| 亚洲第一福利一区| 国产伦精品一区二区三区视频网站| 91精品国产综合久久香蕉的特点| 日本不卡免费高清视频| 四虎国产精品免费| 亚洲黄色av网站| 欧洲杯什么时候开赛| 日韩欧美视频| 国产又粗又猛又爽又黄的视频四季| 2018狠狠干| 亚洲一级黄色片| 粉嫩小泬无遮挡久久久久久| 五月天天在线| 尤物影院在线播放| 成人午夜剧场免费观看完整版| 国产成人91久久精品| 欧美在线短视频| 91gao视频| 亚洲最新av网站| 97操碰视频| 91文字幕巨乱亚洲香蕉| 一区二区不卡在线播放| 夜夜躁很很躁日日躁麻豆| 97精品一区二区视频在线观看| 欧美一区二区视频在线观看2022| 欧美电影免费观看完整版| av在线私库| 国产一区精品在线| 欧美亚洲一区二区在线观看| 澳门黄色一级片| 五月天丁香综合久久国产| 亚洲欧美一区二区三区情侣bbw| 每日更新成人在线视频| 亚洲天堂免费av| 99久久久久国产精品免费| 一区二区三区四区五区精品视频| 天天影院图片亚洲|