Range#
Range.endOffset#
Właściwość endOffset
zwraca przesunięcie końcowe (liczba całkowita) w danym zakresie. Właściwość jest tylko do odczytu.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var end_offset = range.endOffset;
gdzie poszczególne człony oznaczają:
- end_offset - liczba reprezentującą przesunięcie końcowe.
- range - zakres będący obiektem kontekstu.
Warto przypomnieć, że znaczenie przesunięcia końcowego będzie zależne od rodzaju samego węzła końcowego. W przypadku węzłów o charakterze tekstowym wartość liczbowa wskazuje na kolejne znaki w ich danych tekstowych. Dla pozostałych węzłów wartość liczbowa wskazuje na kolejne dzieci (węzły). Dla zwiniętych zakresów właściwość endOffset
zawsze zwróci 0
. Szczegóły tego zachowania można ustalić bezpośrednio z definicji punktu granicznego oraz długości węzła.
Przesunięcie końcowe można ustawiać na wiele różnych sposobów.
Prosty przykład:
<script>
// Tworzymy nowy zakres
var range = document.createRange();
document.write(range.startOffset); // 0
document.write("<br>");
document.write(range.endOffset); // 0
document.write("<br>");
document.write(document.childNodes.length); // 1 - tylko jedno dziecko
document.write("<br>");
document.write(document.childNodes[0]); // [object HTMLHtmlElement]
document.write("<br><br>");
// Zmieniamy przesunięcie końcowe zakresu (na 1)
range.setEnd(document, 1);
document.write(range.startOffset); // 0
document.write("<br>");
document.write(range.endOffset); // 1
</script>
Składnia Web IDL#
interface Range { readonly attribute unsigned long endOffset; }