摘要:二獲取當前的選區(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
摘要:二獲取當前的選區(qū)由于兼容性的問題需要區(qū)分瀏覽器,現(xiàn)代瀏覽器對象三屬性如果范圍的開始點和結(jié)束點在文檔的同一位置,則為,即范圍是空的,或折疊的。包含范圍的結(jié)束點的節(jié)點。四操作選中區(qū)域的文字選中區(qū)域的元素選中區(qū)域的選區(qū)是否為空 一:什么是Range對象 Range是指html文檔中的區(qū)域,如用戶用鼠標拖動選中的區(qū)域,如下圖: showImg(https://segmentfault.co...
摘要:前言最近項目新增需求用戶能夠拖拽頁面上的圖片文件到文檔。在現(xiàn)有的拖拽事件所提供無法滿足需求的情況下,換一個思路走嘗試將圖片復(fù)制到剪貼板。只復(fù)制目標節(jié)點的子節(jié)點,對于標簽,如果不額外包裹一層父元素,無法實現(xiàn)圖片復(fù)制。 前言 最近項目新增需求:用戶能夠拖拽頁面上的圖片文件到word文檔。當操作瀏覽器里拖拽圖片至別的程序,在word文檔中展示出獲取到的只是圖片的url地址,而非預(yù)期的圖片文件...
摘要:目前,通行的模塊規(guī)范主要有兩種和。所有依賴某些模塊的語句均放置在回調(diào)函數(shù)中。首先采用了模塊化的概念。然后通過參數(shù)一,參數(shù)二參數(shù)一是數(shù)組,傳入我們需要引用的模塊名,第二個參數(shù)是個回調(diào)函數(shù),回調(diào)函數(shù)傳入一個變量,代替剛才所引入的模塊。 什么是模塊化開發(fā)? 前端開發(fā)中,起初只要在script標簽中嵌入幾十上百行代碼就能實現(xiàn)一些基本的交互效果,后來js得到重視,應(yīng)用也廣泛起來了,jQuery,...
摘要:可迭代對象瀏覽器需支持注意返回一個實時的返回一個靜態(tài)的語句在可迭代對象上創(chuàng)建一個迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個不同屬性的值執(zhí)行語句。與的區(qū)別語句以原始插入順序迭代對象的可枚舉屬性。語句遍歷可迭代對象定義要迭代的數(shù)據(jù)。 可迭代對象 Array [10, 20, 30] String boo TypedArrayc new Uint8Array([0x00, 0xff]) ...
摘要:即兩個構(gòu)造函數(shù)創(chuàng)建的實例的是指向同一個原型對象當原型鏈修改的時候,其子不會發(fā)生改變通過運算符來進行計算屬性對就是上文中的構(gòu)造器。 類和模塊每個js的對象都是屬性的集合。相互之間沒有聯(lián)系。js也能定義對象的類,讓每個對象都共享某些屬性。類的成員或者實例包含一些屬性,用來存放或者定義他們的狀態(tài)。有些屬性定義了其行為,(行為或者稱為方法)方法是類定義的,被所有的實例共享。例如,用一個類來表示...
閱讀 2365·2021-11-16 11:52
閱讀 2338·2021-11-11 16:55
閱讀 765·2021-09-02 15:41
閱讀 2997·2019-08-30 15:54
閱讀 3156·2019-08-30 15:54
閱讀 2265·2019-08-29 15:39
閱讀 1520·2019-08-29 15:18
閱讀 981·2019-08-29 13:00