javascript что вам дает range.endOffset()?

#javascript #range

#javascript #диапазон

Вопрос:

Когда я иду:

 range.selectNodeContents(element);
  

Насколько я понимаю, объект range выбирает все содержимое элемента. Так что это означало бы, что если бы я сказал:

 range.startOffset();
  

Я должен получить 0. Что верно при тестировании.
Но тогда, если я скажу:

 range.endOffset();
  

Я бы подумал, что я получаю длину содержимого элемента. Но я этого не делаю. Я получаю 1, или 3 … или числа, которые я не понимаю.

Итак … что на самом деле вам говорит range.endOffset()?

Ответ №1:

Свойство Range.endOffset, доступное только для чтения, возвращает число, представляющее, где в Range.endContainer заканчивается диапазон.

Из: https://developer.mozilla.org/en-US/docs/Web/API/Range/endOffset

Ответ №2:

Когда вы используете selectNodeContents ,

  1. Пусть длина — это длина узла.

  1. Установите end в граничную точку (узел, длина).

Таким образом, конечное смещение устанавливается на длину узла:

Чтобы определить длину узла node, включите node:

Это то, что вы получите, если позвоните endOffset .