摘要:二獲取當前的選區由于兼容性的問題需要區分瀏覽器,現代瀏覽器對象三屬性如果范圍的開始點和結束點在文檔的同一位置,則為,即范圍是空的,或折疊的。包含范圍的結束點的節點。四操作選中區域的文字選中區域的元素選中區域的選區是否為空
一:什么是Range對象
Range是指html文檔中的區域,如用戶用鼠標拖動選中的區域,如下圖:
通過Range對象,可以獲取用戶選中的區域,或者指定選中區域,得到Range的起點和終點、修改或者復制里邊的文本,甚至是html。在富文本編輯器開發中,經常會使用到這些功能。
二:獲取當前的選區
由于兼容性的問題,需要區分ie瀏覽器,
var selection, range; if (window.getSelection) { //現代瀏覽器 selection = window.getSelection(); } else if (document.selection) { //IE selection = document.selection.createRange(); } //Range對象 range = selection.getRangeAt(0);
三:range屬性
> collapsed 如果范圍的開始點和結束點在文檔的同一位置,則為 true,即范圍是空的,或折疊的。 > commonAncestorContainer 范圍的開始點和結束點的(即它們的祖先節點)、嵌套最深的 Document 節點。 > endContainer 包含范圍的結束點的 Document 節點。 > endOffset endContainer 中的結束點位置。 > startContainer 包含范圍的開始點的 Document 節點。 > startOffset startContainer中的開始點位置。
四:range操作
//選中區域的文字 var text = range.toString(); //選中區域的Element元素 var elem = range.commonAncestorContainer; if(elem.nodeType != 1){ elem = elem.parentNode; } //選中區域的html var span = document.createElement("SPAN"); span.appendChild(range.cloneContents()); //選區是否為空 var isSelectionEmpty = false; if (range.startContainer === range.endContainer) { if (range.startOffset === range.endOffset) { isSelectionEmpty = true; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/50902.html
摘要:二獲取當前的選區由于兼容性的問題需要區分瀏覽器,現代瀏覽器對象三屬性如果范圍的開始點和結束點在文檔的同一位置,則為,即范圍是空的,或折疊的。包含范圍的結束點的節點。四操作選中區域的文字選中區域的元素選中區域的選區是否為空 一:什么是Range對象 Range是指html文檔中的區域,如用戶用鼠標拖動選中的區域,如下圖: showImg(https://segmentfault.co...
摘要:前言最近項目新增需求用戶能夠拖拽頁面上的圖片文件到文檔。在現有的拖拽事件所提供無法滿足需求的情況下,換一個思路走嘗試將圖片復制到剪貼板。只復制目標節點的子節點,對于標簽,如果不額外包裹一層父元素,無法實現圖片復制。 前言 最近項目新增需求:用戶能夠拖拽頁面上的圖片文件到word文檔。當操作瀏覽器里拖拽圖片至別的程序,在word文檔中展示出獲取到的只是圖片的url地址,而非預期的圖片文件...
摘要:目前,通行的模塊規范主要有兩種和。所有依賴某些模塊的語句均放置在回調函數中。首先采用了模塊化的概念。然后通過參數一,參數二參數一是數組,傳入我們需要引用的模塊名,第二個參數是個回調函數,回調函數傳入一個變量,代替剛才所引入的模塊。 什么是模塊化開發? 前端開發中,起初只要在script標簽中嵌入幾十上百行代碼就能實現一些基本的交互效果,后來js得到重視,應用也廣泛起來了,jQuery,...
摘要:可迭代對象瀏覽器需支持注意返回一個實時的返回一個靜態的語句在可迭代對象上創建一個迭代循環,調用自定義迭代鉤子,并為每個不同屬性的值執行語句。與的區別語句以原始插入順序迭代對象的可枚舉屬性。語句遍歷可迭代對象定義要迭代的數據。 可迭代對象 Array [10, 20, 30] String boo TypedArrayc new Uint8Array([0x00, 0xff]) ...
摘要:即兩個構造函數創建的實例的是指向同一個原型對象當原型鏈修改的時候,其子不會發生改變通過運算符來進行計算屬性對就是上文中的構造器。 類和模塊每個js的對象都是屬性的集合。相互之間沒有聯系。js也能定義對象的類,讓每個對象都共享某些屬性。類的成員或者實例包含一些屬性,用來存放或者定義他們的狀態。有些屬性定義了其行為,(行為或者稱為方法)方法是類定義的,被所有的實例共享。例如,用一個類來表示...
閱讀 2337·2021-11-16 11:52
閱讀 2323·2021-11-11 16:55
閱讀 750·2021-09-02 15:41
閱讀 2981·2019-08-30 15:54
閱讀 3142·2019-08-30 15:54
閱讀 2251·2019-08-29 15:39
閱讀 1507·2019-08-29 15:18
閱讀 968·2019-08-29 13:00