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

首頁 > 語言 > JavaScript > 正文

JavaScript中textRange對象使用方法小結

2024-05-06 16:17:33
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript中textRange對象使用方法小結,需要的朋友可以參考下
 

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

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

 屬性

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

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

  1.創建文本范圍

  2.設置開始點和結束點

  3.對范圍進行操作

 

復制代碼代碼如下:

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

 

  1.createTextRange()

  創建一個TextRange對象,BODY、TEXT、TextArea、BUTTON等元素都支持這個方法。該方法返回一個TextRange對象。

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

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

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

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

  3.select()

  select()方法選擇當前文本范圍內的文本,這里的顯示光標也必須利用它來實現,因為所謂的”光標”可以理解為邊界重合的范圍

 

復制代碼代碼如下:

<BODY>  
<textarea name="txtBox" rows="7" cols="50" id="txtBox">  
菊花臺 (滿城盡帶黃金甲主題曲)   
歌手:周杰倫 專輯:依然范特西  
你的淚光 柔弱中帶傷   
慘白的月彎彎 勾住過往   
夜太漫長 凝結成了霜   
是誰在閣樓上冰冷的絕望   
雨輕輕淌 朱紅色的窗   
我一生在紙上 被風吹亂   
夢在遠方 化成一縷霞   
隨風飄散 你的模樣  
菊花慘淡地傷 你的笑容已泛黃   
花落人斷腸 我心事靜靜淌   
北風亂夜未央 你的影子剪不斷   
徒留我孤單在湖面生霜   
</textarea><br>  
<input type="text" value="輸入要查詢的內容" id="txtFind">  
<input type="button" value="查找下一個" onclick="findText(txtFind.value)">  
<script language="javascript">  
var rng = txtBox.createTextRange();  
function findText(str)  
{  
   if(str=="")  
   return;  
   //定義一個變量,作為moveStart()函數的偏移量,即開始點跳過選擇文本  
   var num = 0;  
   if(document.selection)     
     num = document.selection.createRange().text.length;  
       //每次調用函數,結束點都為末尾,而開始點是跳過選擇文本后的新開始點   
       rng.moveStart("character",num);  
       rng.moveEnd("character",txtBox.value.length);  
       //搜索到后選擇文本     
   if(rng.findText(str))  
    rng.select();  
   //搜索到最后的范圍還是找不到,則提示搜索完畢,并重新恢復rng最初的范圍(否則無法執行新搜索)     
   if(rng.text!=str)  
   {     
       alert("搜索完畢");  
       rng = txtBox.createTextRange();  
   }  
}     
</script>   
</BODY>

 

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

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

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

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

 

復制代碼代碼如下:

function selectText() 

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

 

  將開始點向前移動一個字符、結束點向后移動一個字符,運行后可以看到選擇的范圍是除第1個字符和最后1個字符的整個文本范圍。

  5.collapse([Boolean])

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

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

  TextRange對象最有用的方法之一是findText()方法,其默認行為是從開始點到結束點瀏覽文本范圍,搜索一個不區分大小寫的字符串 匹配。如果在范圍中發現一個實例,范圍的開始點和結束點就放到這個文本中,方法返回true;否則返回false,開始點和結束點都不動。方法僅搜索顯示 文本,而任何標記或屬性都不會被搜索。

  可選參數searchScope是一個整數值,它指示從開始點的字符數,值越大,包含在搜索范圍的文本越多;負值將迫使搜索操作從當前開始點向后搜索。

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

  findText()方法最常用的應用包括范圍中的查找和替換操作,以及格式化一個字符串的實例,因為搜索通常以范圍的當前開始點開始,所以再次 查詢要將開始點移到范圍中匹配文本的末尾(如示例3),移動后才能使findText()繼續瀏覽剩下的文本范圍,來查找另一個匹配。可以使用 collapse(false)方法迫使開始點移動第一個匹配的范圍的結束點。所以示例3的findText()函數也可以修改為:

 

復制代碼代碼如下:

<script language="javascript"> 
var rng = txtBox.createTextRange(); 
function findText(str) 

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

 

  6.parentElement()

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

  獲得光標選中文本的DOM對象

 

復制代碼代碼如下:

<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="選擇文本后點擊" onClick="getParElem()">  
</BODY>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99久久亚洲国产| 亚洲永久免费观看| 欧美日韩国产在线看| 欧美国产日韩二区| 国产精品欧美一区二区| 国产小视频国产精品| 欧美日韩在线影院| 欧美成人久久久| 亚洲人av在线影院| 中文综合在线观看| 久久久久久伊人| 亚洲欧美制服综合另类| 欧美黑人极品猛少妇色xxxxx| 亚洲最大的免费| 国产一区二区丝袜高跟鞋图片| 久久久久久久91| 97超碰蝌蚪网人人做人人爽| www.日韩欧美| 精品亚洲一区二区三区| 中文字幕亚洲综合| 国产精品美女视频网站| 日韩免费在线看| 国产欧美日韩亚洲精品| 亚洲精品视频在线观看视频| 国内伊人久久久久久网站视频| 亚洲最大的成人网| 黑人与娇小精品av专区| 国产精品免费网站| yw.139尤物在线精品视频| 亚洲国产精品yw在线观看| 亚洲女人初尝黑人巨大| 亚洲jizzjizz日本少妇| 4438全国亚洲精品在线观看视频| 亚洲色图激情小说| 成人国产亚洲精品a区天堂华泰| 97成人超碰免| 国产日韩欧美一二三区| 欧美高清激情视频| 国产性色av一区二区| 欧美性猛交丰臀xxxxx网站| 欧美性资源免费| 国产亚洲欧洲黄色| 美女福利精品视频| 欧美日韩亚洲91| 久久天堂电影网| 欧美性猛xxx| 国产91成人video| 亚洲成人激情在线观看| 亚洲免费电影在线观看| 欧美激情xxxxx| 欧美日韩国产一中文字不卡| 亚洲精品电影在线| 欧美日韩亚洲国产一区| 91精品国产自产在线观看永久| 欧美怡红院视频一区二区三区| 日本一欧美一欧美一亚洲视频| 色妞一区二区三区| 亚洲精品suv精品一区二区| 成人免费淫片aa视频免费| 欧美激情图片区| 亚洲一区国产精品| 国产精品旅馆在线| 久久99视频免费| 国产精品久久久久久久av大片| 欧美国产日韩中文字幕在线| 欧美精品在线第一页| 亚洲国产一区二区三区在线观看| 亚洲国产欧美一区二区丝袜黑人| 精品国产欧美一区二区五十路| 一区二区三区天堂av| 欧美性xxxxxxxxx| 国产精品夜色7777狼人| 久久全国免费视频| 亚洲自拍小视频| 揄拍成人国产精品视频| 欧美成年人视频网站| 欧美国产日韩xxxxx| 久久亚洲一区二区三区四区五区高| 性欧美在线看片a免费观看| 亚洲性夜色噜噜噜7777| 国产精品露脸av在线| 91精品久久久久久久久中文字幕| 91久久精品久久国产性色也91| 欧美最猛性xxxxx免费| 国产一区二区丝袜| 欧美精品18videos性欧美| 国产精品免费看久久久香蕉| 欧美国产乱视频| 亚洲曰本av电影| 精品亚洲一区二区| 成人h猎奇视频网站| 中文字幕日韩av综合精品| 欧美精品在线免费观看| 欧美激情a在线| 97不卡在线视频| 欧美另类极品videosbestfree| 国产精品久久久久9999| 国产日韩精品在线观看| 色与欲影视天天看综合网| 国产偷国产偷亚洲清高网站| 久久色免费在线视频| 91av国产在线| 欧美日韩中国免费专区在线看| 欧美精品videos性欧美| 91久久国产精品91久久性色| 亚洲欧美一区二区三区久久| 欧美成人亚洲成人| 国产精品日韩欧美大师| 日韩精品视频免费| 国产女人18毛片水18精品| 国产在线视频2019最新视频| 91高清视频在线免费观看| 久久精品国产精品| 午夜精品一区二区三区视频免费看| 久久精品成人欧美大片| 亚洲人成在线观| 亚洲精品suv精品一区二区| 久久久国产一区| 国产日韩在线精品av| 美日韩丰满少妇在线观看| 欧美激情亚洲综合一区| 国产成人97精品免费看片| 国产亚洲一区二区精品| 国产精品99久久久久久久久| 国产精品高潮呻吟久久av黑人| 国产精品爽黄69天堂a| 亚洲成人av片| 色悠悠国产精品| 日本精品一区二区三区在线| 在线播放国产一区二区三区| 久久久久久久97| 一区二区三区视频观看| 成人欧美一区二区三区在线湿哒哒| 国产精品久久电影观看| 久久精品人人做人人爽| 91九色蝌蚪国产| 91产国在线观看动作片喷水| 国产亚洲精品美女久久久| 国产精品免费久久久久久| 国产精品久久久久久久久久小说| 日韩精品一区二区三区第95| 大荫蒂欧美视频另类xxxx| 欧美色欧美亚洲高清在线视频| 欧美激情精品久久久久| 国产97色在线|日韩| 欧美日韩精品在线视频| 日本国产欧美一区二区三区| 久久精品亚洲一区| 亚洲色图15p| 欧美色xxxx| 成人精品在线观看| 久久夜色精品国产| 欧美日韩精品中文字幕| 久久精视频免费在线久久完整在线看| 国产精品一区久久久| 久久影视电视剧免费网站清宫辞电视| 久久视频在线观看免费| 最近2019年好看中文字幕视频| 亚洲精品国产综合区久久久久久久| 欧美亚洲另类激情另类| 在线精品播放av| 亚洲一区二区三区在线免费观看| 久久精品成人一区二区三区| 午夜精品一区二区三区视频免费看|