成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS Range 對象的使用

pcChao / 797人閱讀

摘要:二獲取當前的選區(qū)由于兼容性的問題需要區(qū)分瀏覽器,現(xiàn)代瀏覽器對象三屬性如果范圍的開始點和結(jié)束點在文檔的同一位置,則為,即范圍是空的,或折疊的。包含范圍的結(jié)束點的節(jié)點。四操作選中區(qū)域的文字選中區(qū)域的元素選中區(qū)域的選區(qū)是否為空



一:什么是Range對象

Range是指html文檔中的區(qū)域,如用戶用鼠標拖動選中的區(qū)域,如下圖:

通過Range對象,可以獲取用戶選中的區(qū)域,或者指定選中區(qū)域,得到Range的起點和終點、修改或者復(fù)制里邊的文本,甚至是html。在富文本編輯器開發(fā)中,經(jīng)常會使用到這些功能。

二:獲取當前的選區(qū)

由于兼容性的問題,需要區(qū)分ie瀏覽器,

var selection, range;
if (window.getSelection) { 
    //現(xiàn)代瀏覽器
    selection = window.getSelection();
} else if (document.selection) { 
    //IE
    selection = document.selection.createRange();
}

//Range對象
range = selection.getRangeAt(0);

三:range屬性

> collapsed     如果范圍的開始點和結(jié)束點在文檔的同一位置,則為 true,即范圍是空的,或折疊的。
> commonAncestorContainer     范圍的開始點和結(jié)束點的(即它們的祖先節(jié)點)、嵌套最深的 Document 節(jié)點。
> endContainer         包含范圍的結(jié)束點的 Document 節(jié)點。 
> endOffset     endContainer 中的結(jié)束點位置。
> startContainer     包含范圍的開始點的 Document 節(jié)點。
> startOffset    startContainer中的開始點位置。

四:range操作

//選中區(qū)域的文字
var text = range.toString();

//選中區(qū)域的Element元素
var elem = range.commonAncestorContainer;
if(elem.nodeType != 1){
     elem = elem.parentNode;
}

//選中區(qū)域的html
var span = document.createElement("SPAN");
span.appendChild(range.cloneContents());

//選區(qū)是否為空
var isSelectionEmpty = false;
if (range.startContainer === range.endContainer) {
   if (range.startOffset === range.endOffset) {
       isSelectionEmpty = true;
   }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/50902.html

相關(guān)文章

  • JS Range 對象使用

    摘要:二獲取當前的選區(qū)由于兼容性的問題需要區(qū)分瀏覽器,現(xiàn)代瀏覽器對象三屬性如果范圍的開始點和結(jié)束點在文檔的同一位置,則為,即范圍是空的,或折疊的。包含范圍的結(jié)束點的節(jié)點。四操作選中區(qū)域的文字選中區(qū)域的元素選中區(qū)域的選區(qū)是否為空 一:什么是Range對象 Range是指html文檔中的區(qū)域,如用戶用鼠標拖動選中的區(qū)域,如下圖: showImg(https://segmentfault.co...

    yanwei 評論0 收藏0
  • JS實現(xiàn)將圖片復(fù)制到剪貼板

    摘要:前言最近項目新增需求用戶能夠拖拽頁面上的圖片文件到文檔。在現(xiàn)有的拖拽事件所提供無法滿足需求的情況下,換一個思路走嘗試將圖片復(fù)制到剪貼板。只復(fù)制目標節(jié)點的子節(jié)點,對于標簽,如果不額外包裹一層父元素,無法實現(xiàn)圖片復(fù)制。 前言 最近項目新增需求:用戶能夠拖拽頁面上的圖片文件到word文檔。當操作瀏覽器里拖拽圖片至別的程序,在word文檔中展示出獲取到的只是圖片的url地址,而非預(yù)期的圖片文件...

    MageekChiu 評論0 收藏0
  • 詳解JavaScript模塊化開發(fā)

    摘要:目前,通行的模塊規(guī)范主要有兩種和。所有依賴某些模塊的語句均放置在回調(diào)函數(shù)中。首先采用了模塊化的概念。然后通過參數(shù)一,參數(shù)二參數(shù)一是數(shù)組,傳入我們需要引用的模塊名,第二個參數(shù)是個回調(diào)函數(shù),回調(diào)函數(shù)傳入一個變量,代替剛才所引入的模塊。 什么是模塊化開發(fā)? 前端開發(fā)中,起初只要在script標簽中嵌入幾十上百行代碼就能實現(xiàn)一些基本的交互效果,后來js得到重視,應(yīng)用也廣泛起來了,jQuery,...

    waruqi 評論0 收藏0
  • FE.ES-(for...of) 可迭代對象Range(n) in JS

    摘要:可迭代對象瀏覽器需支持注意返回一個實時的返回一個靜態(tài)的語句在可迭代對象上創(chuàng)建一個迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個不同屬性的值執(zhí)行語句。與的區(qū)別語句以原始插入順序迭代對象的可枚舉屬性。語句遍歷可迭代對象定義要迭代的數(shù)據(jù)。 可迭代對象 Array [10, 20, 30] String boo TypedArrayc new Uint8Array([0x00, 0xff]) ...

    miracledan 評論0 收藏0
  • 類和模塊 類和原型 工廠方法 構(gòu)造函數(shù) constructor

    摘要:即兩個構(gòu)造函數(shù)創(chuàng)建的實例的是指向同一個原型對象當原型鏈修改的時候,其子不會發(fā)生改變通過運算符來進行計算屬性對就是上文中的構(gòu)造器。 類和模塊每個js的對象都是屬性的集合。相互之間沒有聯(lián)系。js也能定義對象的類,讓每個對象都共享某些屬性。類的成員或者實例包含一些屬性,用來存放或者定義他們的狀態(tài)。有些屬性定義了其行為,(行為或者稱為方法)方法是類定義的,被所有的實例共享。例如,用一個類來表示...

    hedzr 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<