CharacterData#

CharacterData.substringData()#

Metoda substringData() pozwala wydobyć konkretną część znaków z danych tekstowych skojarzonych z danym węzłem znakowym. Metoda w żaden sposób nie modyfikuje pierwotnych danych tekstowych.

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 data_part = node.substringData(offset, count);

gdzie poszczególne człony oznaczają:

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

  1. Zwróć wynik wydobywania części danych tekstowych z węzłem będącym obiektem kontekstu, przesunięciem wskazywanym przez offset oraz licznikiem wskazywanym przez count.

Warto nadmienić, że argument offset przekazywany do metody nie może być większy od wartości z właściwości CharacterData.length danego węzła znakowego, bo zrzucony zostanie błąd.

Przekazując do metody substringData() wartość 0 oraz wartości z właściwości CharacterData.length danego węzła znakowego uzyskamy identyczne zachowanie, jak w przypadku odczytywania danych tekstowych za pomocą właściwości CharacterData.data, Node.nodeValue i Node.textContent.

Prosty przykład:

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

<head>

	<script>

		function getData(offset, count){

			var result = document.getElementById("info");

			try{

				var textNode = document.getElementById("tekst").firstChild;
				var subData = textNode.substringData(offset, count);
				result.innerHTML = subData;
				result.innerHTML += "<br>" + typeof subData;
				result.innerHTML += "<br>" + subData.length;

			}
			catch(e){

				result.innerHTML = "Przekazanie przesunięcia większego od liczby jednostek kodowych zrzuca błąd:"
				result.innerHTML += "<br>" + e; // opis zależny od przeglądarki
				result.innerHTML += "<br>" + e.constructor; // function DOMException() { [native code] }

			}

		}

	</script>

</head>

<body>
	<p>Kliknij konkretny przycisk by wydobyć pewną część danych tekstowych w testowym akapicie.</p>
	<input type="button" value="substringData('0', '0')" onclick="getData('0', '0')">
	<input type="button" value="substringData('0', '5')" onclick="getData('0', '5')">
	<input type="button" value="substringData('5', '10')" onclick="getData('5', '10')">
	<input type="button" value="substringData('0', '50')" onclick="getData('0', '50')">
	<input type="button" value="substringData('50', '0')" onclick="getData('50', '0')">
	<p id="tekst" >Węzeł tekstowy umieszczony w testowym akapicie.</p>

	<p style="color: blue;">Wynik działania przycisków:</p>
	<p id="info"></p>
</body>

</html>

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface CharacterData : Node {
	DOMString substringData(unsigned long offset, unsigned long count);
}

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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