Range#

Range.collapse()#

Metoda collapse() wykonuje zwinięcie danego zakresu do jego początku lub do jego końca (w zależności od przekazanego argumentu).

Opis działania#

Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
range.collapse([toStart = false]);

gdzie poszczególne człony oznaczają:

Algorytm wywołania metody collapse(toStart) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Jeśli toStart ma boolowską wartość true, to ustaw koniec na początek. W przeciwnym razie ustaw początek na koniec.

Zwinięcie zakresu tak naprawdę oznacza posiadanie przez zakres jednego punktu granicznego (identycznego początku jak i końca). Zwinięty zakres nie posiada żadnej zawartości.

Zwinięcie zakresu najłatwiej ustalić za pomocą dedykowanej właściwości Range.collapsed.

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<script>

	// Tworzymy nowy zakres
	var range = document.createRange();

	document.write(range.collapsed); // true - zakres zwinięty

	document.write("<br><br>");

	// Zmieniamy koniec zakresu na węzeł HTML
	range.setEnd(document.documentElement, 0);

	document.write(range.collapsed); // false - zakres nie jest zwinięty

	// Zwijamy zakres na koniec
	range.collapse(); // tylko Firefox i Chrome przyjmuje domyślną wartość

	document.write("<br><br>");
	document.write(range.collapsed); // true - zakres znowu zwinięty
	document.write("<br>");
	document.write(range.startContainer); // [object HTMLHtmlElement]
	document.write("<br>");
	document.write(range.startOffset); // 0
	document.write("<br>");
	document.write(range.endContainer); // [object HTMLHtmlElement]
	document.write("<br>");
	document.write(range.endOffset); // 0

</script>

Na chwilę obecną jedynie przeglądarki Firefox i Chrome w całości obsługują metodę collapse() zgodnie z najnowszymi wymaganiami specyfikacji DOM4, gdyż faktycznie zezwalają na pominięcie argumentu określającego kierunek zwinięcia zakresu. Pozostałe programy działają jeszcze według starszego podejścia i w takiej sytuacji zwracają błąd.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface Range {
	void collapse(optional boolean toStart = false);
}

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Range (H1) Range.collapse() (H2) Opis działania (H3) Składnia Web IDL (H3) Specyfikacje i inne materiały (H3)