成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JS Range 對(duì)象的使用

pcChao / 841人閱讀

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



一:什么是Range對(duì)象

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

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

二:獲取當(dā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對(duì)象
range = selection.getRangeAt(0);

三:range屬性

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

四: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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/50902.html

相關(guān)文章

  • JS Range 對(duì)象使用

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

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

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

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

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

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

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

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

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

    hedzr 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<