摘要:二獲取當(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
摘要:二獲取當(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...
摘要:前言最近項(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ù)期的圖片文件...
摘要:目前,通行的模塊規(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,...
摘要:可迭代對(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]) ...
摘要:即兩個(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è)類來表示...
閱讀 2478·2021-11-16 11:52
閱讀 2401·2021-11-11 16:55
閱讀 833·2021-09-02 15:41
閱讀 3056·2019-08-30 15:54
閱讀 3219·2019-08-30 15:54
閱讀 2323·2019-08-29 15:39
閱讀 1631·2019-08-29 15:18
閱讀 1053·2019-08-29 13:00