Range#

new Range()#

Interfejs Range może być wywoływany w roli konstruktora, dzięki czemu pozwala na bezpośrednie tworzenie nowych zakresów wprost z interfejsu.

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. #
var new_range = new Range();

gdzie poszczególne człony oznaczają:

Algorytm wywołania konstruktora new Range() nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Zwróć nowy obiekt typu Range z początkiem i końcem w postaci (dokument skojarzony z globalnym obiektem, 0).

Każdy nowy zakres utworzony konstruktorem new Range() lub podobnie działającą metodą Document.createRange() jest domyślnie zwinięty. Dopiero po utworzeniu zakresu możemy zmieniać jego punkty graniczne (szczegóły).

Obiekt zwracany przez konstruktor new Range() implementuje interfejs Range, dlatego ma dostęp do wszystkich poleceń z tego interfejsu (oraz z kolejnych interfejsów w łańcuchu dziedziczenia).

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 = new Range();

	document.write(range); // "" - pusty łańcuch
	document.write("<br>");
	document.write(range.constructor); // function Range() { [native code] }
	document.write("<br>");
	document.write(typeof range); // object

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

	document.write(range.startContainer); // [object HTMLDocument]
	document.write("<br>");
	document.write(range.endContainer); // [object HTMLDocument]
	document.write("<br>");
	document.write(range.startOffset); // 0
	document.write("<br>");
	document.write(range.endOffset); // 0

</script>

Na chwilę obecną jedynie przeglądarki Firefox i Chrome pozwalają wywoływać interfejs Range w roli konstruktora.

Konstruktor new Range() pojawia się dopiero w specyfikacji DOM4.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
[Constructor]
interface Range {
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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