选择范围内“开始”和“结束”的具体定义

问题描述 投票:0回答:0

使用 DOM 标准

为方便起见,范围的起始节点是它的起始节点,它的起始偏移量是它的起始偏移量,它的结束节点是它的结束节点,它的结束偏移量是它的结束偏移量。

但我不知道什么是“开始”或“结束”。例如(该片段不适用于此演示):

    <div class="container" contenteditable="true">
        <p>a</p>
        <p>b</p>
    </div>
document.addEventListener('selectionchange', (e) => {
    const sel = window.getSelection()
    console.log(sel.anchorNode, sel.anchorOffset)
    console.log(sel.focusNode, sel.focusOffset)
    console.log('---')
})

如果从“a”之前的位置选择,停在“b”之前的位置。你会得到如下结果(Chromium):

开始:

"a" 0

结束:

<p>b</p> 0

那么为什么最终更喜欢

<p>b</p> 0
而不是文本节点
b 0

更一般地,考虑内联元素:在什么情况下文本/内联/块节点被选择为锚点/焦点节点?是否有规范(针对特定浏览器)?

javascript web dom browser w3c
© www.soinside.com 2019 - 2024. All rights reserved.