Text#

new Text()#

Interfejs Text może być wywoływany w roli konstruktora, dzięki czemu pozwala na bezpośrednie tworzenie nowych węzłów tekstowych wprost z interfejsu. Przy tworzeniu węzła tekstowego od razu ustalane są jego dane tekstowe.

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_text = new Text([data = ""]);

gdzie poszczególne człony oznaczają:

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

  1. Zwróć nowy węzeł typu Text z danymi tekstowymi wskazywanymi przez data, którego właścicielem jest dokument skojarzony z globalnym obiektem.

Konstruktor nie weryfikuje poprawności przekazanych danych tekstowych wymaganych dla węzłów tekstowych w przypadku XML-a, np. pod względem dopasowania do wzorca Char.

Nowy węzeł tekstowy zwracany przez konstruktor new Text() nie jest częścią danego drzewa dokumentu dopóki nie zostanie dodany do innego węzła należącego do drzewa dokumentu. Dlatego nowy węzeł tekstowy nie będzie posiadał rodzica (wartość null), aczkolwiek dalej posiada jakiegoś właściciela.

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

Alternatywnie można skorzystać z podobnie działającej metody Document.createTextNode().

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 addText(data){

			var p = document.getElementById("tekst");
			var info = document.getElementById("info");

			var newText = new Text(data);
			p.appendChild(newText);

			info.innerHTML = "Liczba węzłów tekstowych w akapicie po kolejnym dodaniu nowego węzła: "
				+ p.childNodes.length
				+ "<br>" + "Interfejs nowego węzła: " + newText
				+ "<br>" + "Dane tekstowe nowego węzła: " + newText.data;

		}

	</script>

</head>

<body>
	<p>Kliknij konkretny przycisk by dodać nowy węzeł tekstowy do testowego akapitu.</p>
	<input type="button" value="new Text(' Test1')" onclick="addText(' Test1')">
	<input type="button" value="new Text(' Test2')" onclick="addText(' Test2')">
	<input type="button" value="new Text(null)" onclick="addText(null)">
	<input type="button" value="new Text('')" onclick="addText('')">
	<input type="button" value="new Text()" onclick="addText()">
	<p id="tekst" >Węzeł tekstowy umieszczony w testowym akapicie.</p>

	<p style="color: blue;">Szczegółowe informacje o akapicie i nowym węźle tekstowym:</p>
	<p id="info"></p>
</body>

</html>

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

Konstruktor new Text() 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(optional DOMString data = "")]
interface Text : CharacterData {
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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