CharacterData#

CharacterData.insertData()#

Metoda insertData() dodaje nową treść w określonym miejscu danych tekstowych skojarzonych z danym węzłem znakowym.

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. #
node.insertData(offset, data);

gdzie poszczególne człony oznaczają:

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

  1. Zwróć wynik zastępowania danych tekstowych z węzłem będącym obiektem kontekstu, przesunięciem wskazywanym przez offset, licznikiem będącym wartością 0 oraz danymi tekstowymi wskazywanymi przez data.

Identyczny efekt uzyskamy poprzez wywołanie metody CharacterData.replaceData(offset, count, data) z argumentami o następujących wartościach:

Warto nadmienić, że w obu przypadkach 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.

Metoda insertdData() jest w zasadzie precyzyjniejszą odmianą metody CharacterData.appendData(), gdyż pozwala wstawiać nową treść nie tylko na końcu danych tekstowych w danym węźle znakowym, ale także w dowolnym ich miejscu.

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 insData(offset, data){

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

			try{

				var cloneText = document.getElementById("tekst").firstChild.cloneNode();
				cloneText.insertData(offset, data);
				result.innerHTML = cloneText.data;

			}
			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 dodać w określonym miejscu aktualnych danych tekstowych w testowym akapicie nowe dane tekstowe.</p>
	<input type="button" value="insertData('0', 'TEST1')" onclick="insData('0', 'TEST1')">
	<input type="button" value="insertData('5', 'TEST2')" onclick="insData('5', 'TEST2')">
	<input type="button" value="insertData('10', '')" onclick="insData('10', '')">
	<input type="button" value="insertData('47', null)" onclick="insData('47', null)">
	<input type="button" value="insertData('50', '')" onclick="insData('50', '')">
	<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 {
	void insertData(unsigned long offset, DOMString data);
}

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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