Range#
Range.startOffset#
Właściwość startOffset
zwraca przesunięcie początkowego (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 start_offset = range.startOffset;
gdzie poszczególne człony oznaczają:
- start_offset - liczba całkowita reprezentującą przesunięcie początkowe.
- range - zakres będący obiektem kontekstu.
Warto przypomnieć, że znaczenie przesunięcia początkowego będzie zależne od rodzaju samego węzła początkowego. 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ść startOffset
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 początkowego 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 początkowe zakresu (na 1)
range.setStart(document, 1);
document.write(range.startOffset); // 1
document.write("<br>");
document.write(range.endOffset); // 1
</script>
Składnia Web IDL#
interface Range { readonly attribute unsigned long startOffset; }