NodeFilter#

Wstęp#

Interfejs NodeFilter stanowi definicję Web IDL dla obiektu, który spełnia pomocniczą rolę w czasie pracy z interfejsami NodeIterator i TreeWalker (szczegóły). Obiekt ten jest potocznie nazywany filtrem węzłowym.

Interfejs NodeFilter, w przeciwieństwie do interfejsu EventListener, definiuje stałe, dlatego musi zostać udostępniony pod globalną zmienną o tej samej nazwie. Nie można utworzyć drugiego takiego obiektu za pomocą dedykowanej metody DOM. Stałe mogą być przydatne przy określaniu maski bitowej oraz filtra, chociaż ten drugi będziemy implementowali samodzielnie w standardowym obiekcie JS.

Prosty przykład:

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

	document.write(NodeFilter); // function NodeFilter() { [native code] }, w IE [object NodeFilter]
	document.write("<br>");
	document.write(NodeFilter.SHOW_ALL); // 4294967295
	document.write("<br>");
	document.write(NodeFilter.FILTER_ACCEPT); // 1

</script>

Interfejs NodeFilter nie dziedziczy z żadnego innego interfejsu w ogólnym ujęciu DOM, chociaż w środowisku JS obiekty implementujące ten interfejs będą dziedziczyły z prototypu najwyższego rzędu. Zachowanie takie jest czymś normalnym w przypadku języka ECMAScript.

Metody NodeFilter#

NazwaOpis
NodeFilter.acceptNode()Dodatkowa metoda testująca używana przez filtr, która dostarczana jest jako właściwość obiektu w czasie tworzenia obiektów typu NodeIterator lub TreeWalker.

Stałe NodeFilter#

NazwaZapis dziesiętnyZapis szesnastkowyZnaczenie
Stałe dla metody acceptNode() #
FILTER_ACCEPT #11Wartość zwracana w przypadku akceptacji węzła.
FILTER_REJECT #22

Dla NodeIterator: Analogiczne działanie jak FILTER_SKIP.

Dla TreeWalker: Wartość zwracana w przypadku pomijania węzła i wszystkich jego dzieci.

FILTER_SKIP #33Wartość zwracana w przypadku pomijania węzła, ale wszystkie jego dzieci wciąż brane są pod uwagę.
Stałe dla maski bitowej whatToShow
SHOW_ALL #4294967295FFFFFFFFPokaż wszystkie węzły.
SHOW_ELEMENT #11Pokaż węzły typu Element.
SHOW_ATTRIBUTE* #22Pokaż węzły typu Attribute.
SHOW_TEXT #44Pokaż węzły typu Text.
SHOW_CDATA_SECTION* #88Pokaż węzły typu CDATASection.
SHOW_ENTITY_REFERENCE* #1610Pokaż węzły typu EntityReference.
SHOW_ENTITY* #3220Pokaż węzły typu Entity.
SHOW_PROCESSING_INSTRUCTION #6440Pokaż węzły typu ProcessingInstruction.
SHOW_COMMENT #12880Pokaż węzły typu Comment.
SHOW_DOCUMENT #256100Pokaż węzły typu Document.
SHOW_DOCUMENT_TYPE #512200Pokaż węzły typu DocumentType.
SHOW_DOCUMENT_FRAGMENT #1024400Pokaż węzły typu DocumentFragment.
SHOW_NOTATION* #2048800Pokaż węzły typu Notation.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
callback interface NodeFilter # {
	// Constants for acceptNode()
	const unsigned short FILTER_ACCEPT = 1;
	const unsigned short FILTER_REJECT = 2;
	const unsigned short FILTER_SKIP = 3;

	// Constants for whatToShow
	const unsigned long SHOW_ALL = 0xFFFFFFFF;
	const unsigned long SHOW_ELEMENT = 0x1;
	const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
	const unsigned long SHOW_TEXT = 0x4;
	const unsigned long SHOW_CDATA_SECTION = 0x8; // historical
	const unsigned long SHOW_ENTITY_REFERENCE = 0x10; // historical
	const unsigned long SHOW_ENTITY = 0x20; // historical
	const unsigned long SHOW_PROCESSING_INSTRUCTION = 0x40;
	const unsigned long SHOW_COMMENT = 0x80;
	const unsigned long SHOW_DOCUMENT = 0x100;
	const unsigned long SHOW_DOCUMENT_TYPE = 0x200;
	const unsigned long SHOW_DOCUMENT_FRAGMENT = 0x400;
	const unsigned long SHOW_NOTATION = 0x800; // historical

	unsigned short acceptNode(Node node);
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

NodeFilter (H1) Wstęp (H2) Metody NodeFilter (H3) Stałe NodeFilter (H3) Składnia Web IDL (H3) Specyfikacje i inne materiały (H3)