<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Range范圍選區(qū)的理解

      <!--
       * @Date: 2024-10-14 10:02:56
       * @Description: Modify here please
      -->
      <!doctype html>
      <html lang="en">
        <head>
          <meta charset="UTF-8" />
          <meta name="viewport" content="width=device-width, initial-scale=1.0" />
          <title>Range范圍選區(qū)的理解</title>
          <style>
            *,
            *::before,
            *::after {
              box-sizing: border-box;
            }
            body {
              font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
                "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
              font-variant: tabular-nums;
            }
            .edit {
              width: 100%;
              min-height: 210px;
              overflow-x: hidden;
              border: none;
              outline: none;
              background-color: transparent;
              color: #333;
              font-size: 14px;
              white-space: pre-wrap;
              word-break: break-all;
            }
            p {
              line-height: 1.5;
            }
          </style>
        </head>
        <body>
          <p style="margin-bottom: 20px"><a  target="_blank">Range文檔</a></p>
          <div class="edit" contenteditable="true" spellcheck="true" id="edit">
            <p><span>123456789</span><span style="color: red">高亮啦</span><span>abcde</span></p>
          </div>
      
          <script>
            // Range 接口表示一個(gè)包含節(jié)點(diǎn)與文本節(jié)點(diǎn)的一部分的文檔片段
            var range = document.createRange();
            // Selection 對(duì)象表示用戶選擇的文本范圍或插入符號(hào)的當(dāng)前位置。它代表頁(yè)面中的文本選區(qū),可能橫跨多個(gè)元素。文本選區(qū)由用戶拖拽鼠標(biāo)經(jīng)過(guò)文字而產(chǎn)生。
            var s = window.getSelection();
      
            var editRef = document.getElementById("edit");
      
            var spanNode1 = document.getElementsByTagName("span").item(0);
      
            var spanNode2 = document.getElementsByTagName("span").item(1);
      
            var spanNode3 = document.getElementsByTagName("span").item(2);
      
            /**
             * 1: 以其它節(jié)點(diǎn)為基準(zhǔn),來(lái)設(shè)置 Range 的起始點(diǎn)或者終點(diǎn)---  Api
             */
            /**
             * range.setStartBefore(referenceNode)方法用于將一個(gè)范圍(range)的起始位置設(shè)置在指定的參考節(jié)點(diǎn)(referenceNode)之前。
             * 理解為:用于將某個(gè)節(jié)點(diǎn)的起點(diǎn)位置設(shè)置為range對(duì)象的起點(diǎn)位置。
             */
            // range.setStartBefore(spanNode1);
      
            /**
             * range.setStartAfter(referenceNode)方法用于將一個(gè)范圍(range)的起始點(diǎn)設(shè)置在指定的參考節(jié)點(diǎn)(referenceNode)之后。
             * 理解為:用于將某個(gè)節(jié)點(diǎn)的終點(diǎn)位置設(shè)置為range對(duì)象的起點(diǎn)位置。
             */
            // range.setStartAfter(spanNode1);
      
            /**
             * range.setEndBefore(referenceNode)方法用于將一個(gè)范圍(range)的結(jié)束位置設(shè)置在指定的參考節(jié)點(diǎn)(referenceNode)之前。
             * 理解為:用于將某個(gè)節(jié)點(diǎn)的起點(diǎn)位置設(shè)置為range對(duì)象的終點(diǎn)位置。
             */
            // range.setEndBefore(spanNode1);
      
            /**
             * range.setEndAfter(referenceNode)方法用于將一個(gè)范圍(range)的結(jié)束位置設(shè)置在指定的參考節(jié)點(diǎn)(referenceNode)之后
             * 理解為:表示用于將某個(gè)節(jié)點(diǎn)的終點(diǎn)位置設(shè)置為range對(duì)象的終點(diǎn)位置。
             */
            // range.setEndAfter(spanNode1);
      
            /**
             * 2. 選中節(jié)點(diǎn), 把range的開(kāi)始和結(jié)束
             */
            /**
             * 2.1 此操作將會(huì)選中spanNode1節(jié)點(diǎn)
             */
            // range.setStartBefore(spanNode1);
            // range.setEndAfter(spanNode1);
      
            /**
             * 2.2 此操作將會(huì)選中spanNode2節(jié)點(diǎn)
             */
            // range.setStartAfter(spanNode1);
            // range.setEndBefore(spanNode3);
      
            /**
             * 3. 選中某個(gè)節(jié)點(diǎn), 把光標(biāo)設(shè)置為節(jié)點(diǎn)的開(kāi)始或結(jié)束位置
             */
            // 選中某個(gè)節(jié)點(diǎn)
            // range.selectNode(spanNode1);
            /**
             * ?range.collapse()方法可以將某一區(qū)域或所選內(nèi)容折疊到起始位置或結(jié)束位置。? 折疊后,起始位置和結(jié)束位置會(huì)相同。
             * 一個(gè)布爾值: true 折疊到 Range 的 start 節(jié)點(diǎn),false 折疊到 end 節(jié)點(diǎn)。如果省略,則默認(rèn)為 false
             * 要確定 Range 是否已折疊,使用Range.collapsed 屬性
             */
            // range.collapse(true);
      
            /**
             * 4. Range.setStart(startNode, startOffset)方法用于設(shè)置一個(gè)范圍(Range)的起始位置。
                參數(shù)說(shuō)明:
                startNode:指定范圍起始位置所在的節(jié)點(diǎn),可以是一個(gè)元素節(jié)點(diǎn)、文本節(jié)點(diǎn)等。
                startOffset:一個(gè)整數(shù),表示在startNode中的字符偏移量。如果startNode是一個(gè)元素節(jié)點(diǎn),偏移量表示子節(jié)點(diǎn)的索引;如果startNode是一個(gè)文本節(jié)點(diǎn),偏移量表示字符位置。
            */
            // range.setStart(spanNode1.firstChild, 0);
            // range.setEnd(spanNode1.firstChild, 3);
            console.log(range);
      
            s.addRange(range);
          </script>
        </body>
      </html>

       

      posted @ 2024-10-18 23:03  simple-love  閱讀(42)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久久精品94久久精品| 福利视频一区二区在线| 中文字幕有码无码人妻在线| 亚洲精品不卡无码福利在线观看| 五月天免费中文字幕av| 蜜桃视频在线免费观看一区二区 | 视频二区国产精品职场同事| gogogo高清在线播放免费| 国产性色av免费观看| 久久96热人妻偷产精品| 四虎影视永久在线精品| 国产精品一级久久黄色片| 一区二区三区精品偷拍| 国产在线午夜不卡精品影院 | 亚洲国产午夜精品理论片| 久本草在线中文字幕亚洲| 国产极品粉嫩馒头一线天| 成人无码午夜在线观看| 宝贝腿开大点我添添公口述视频| 国产性色的免费视频网站| 一本大道久久东京热AV| 久久av中文字幕资源网| 免费av网站| 欧美丰满熟妇乱XXXXX网站| 欧美极品少妇×xxxbbb| 在线观看成人av天堂不卡| 亚洲综合精品第一页| 在线亚洲午夜理论av大片| 亚洲成av人片无码天堂下载| 麻豆tv入口在线看| 老太脱裤让老头玩ⅹxxxx| WWW丫丫国产成人精品| 男女猛烈激情xx00免费视频| 日本一码二码三码的区分| 亚洲熟女乱色综合亚洲图片| 国产不卡一区二区四区| 亚洲精品久久7777777国产| 欧美国产日韩久久mv| 亚洲精品无码久久一线| 久久99精品国产麻豆宅宅| 97久久精品人人做人人爽|