MutationObserver#

new MutationObserver()#

Interfejs MutationObserver może być wywoływany w roli konstruktora, dzięki czemu pozwala na bezpośrednie tworzenie nowych obserwatorów zmian wprost z interfejsu. Przy tworzeniu obserwatora zmian od razu ustalana jest jego funkcja zwrotna (def. Web IDL).

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_observer = new MutationObserver(callback);

gdzie poszczególne człony oznaczają:

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

  1. Utwórz nowy obiekt typu MutationObserver z funkcją zwrotną ustawioną na callback, dołącz go do listy z obiektami typu MutationObserver skojarzonej z jednostką powiązanych podobnych względem pochodzenia kontekstów przeglądania, i na koniec zwróć go.

Obiekt zwracany przez konstruktor new MutationObserver() implementuje interfejs MutationObserver, 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>

	var new_observer = new MutationObserver(function(records, observer){

		// W czasie wywołania funkcji zwrotnej (wewnątrz niej) mamy dostęp do:
		// records - lista ze wszystkimi zarejestrowanymi zmianami w postaci obiektów MutationRecord
		// observer - nasz new_observer (to samo będzie pod wartością this)

	});

	document.write(new_observer + "<br>"); // [object MutationObserver]
	document.write(new_observer.constructor + "<br>"); // function MutationObserver() { [native code] }
	document.write(new_observer.disconnect + "<br>"); // function disconnect() { [native code] }
	document.write(new_observer.observe + "<br>"); // function observe() { [native code] }
	document.write(new_observer.takeRecords); // function takeRecords() { [native code] }

</script>

Konstruktor new MutationObserver() 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(MutationCallback callback)]
interface MutationObserver {
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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