e1:javascript

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
e1:javascript [2017/12/09 08:01] – angelegt admin03e1:javascript [2017/12/09 08:09] (aktuell) admin03
Zeile 1: Zeile 1:
-**JavaScript**+====== JavaScript ====== 
  
 Mit HTML werden die Struktur und der Inhalt von Webseiten beschrieben, mit CSS wird das Layout von Webseiten gestaltet und JavaScript verwendet man für Interaktivität von Webseiten. JavaScript ist eine objektorientierte Skriptsprache, die in Browsern eingesetzt wird. JavaScript ermöglicht es mittels Event-Handlern Nutzerinteraktionen auszuwerten und dementsprechend die Struktur, den Inhalt und das Layout einer Webseite zu verändern. Mit HTML werden die Struktur und der Inhalt von Webseiten beschrieben, mit CSS wird das Layout von Webseiten gestaltet und JavaScript verwendet man für Interaktivität von Webseiten. JavaScript ist eine objektorientierte Skriptsprache, die in Browsern eingesetzt wird. JavaScript ermöglicht es mittels Event-Handlern Nutzerinteraktionen auszuwerten und dementsprechend die Struktur, den Inhalt und das Layout einer Webseite zu verändern.
Zeile 24: Zeile 25:
 </html> </html>
 </code> </code>
 +
 +====== DOM – Document Object Model ======
 +
 +Zur Realisierung der Interaktivität kann JavaScript auf das Document Object Model, also auf den Dokumentbaum zugreifen. Dieser steht als Objekt mit dem Namen document direkt zur Verfügung, muss also nicht erst mit einem Konstruktor erzeugt werden. Mit den Methoden getElementById, getElementsByName und getElementsByTagName kann man auf HTML-Elemente zugreifen (vgl. http://de.selfhtml.org/javascript/objekte/document.htm). Für jedes HTML-Element stehen spezifische Attribute und Methoden zur Bearbeitung zur Verfügung. Ein <a>-Element hat natürlich andere Attribute als ein <img>-Element. Wir betrachten dieses Beispiel:
 +
 +<code html>
 +
 +<!doctype html>
 +<html>
 +<head>
 +<meta charset="utf-8">
 +<title>Tastaturereignisse</title>
 +<script>
 +function zeigeAnzahlZeichen(value) {
 +  document.getElementById('AnzahlZeichen').innerHTML =  value.length + " Zeichen";
 +}
 +</script>
 +</head>
 +<body>
 +<h3>Tastaturereignisse</h3>
 +<p>
 +Dein Gezwitscher (max. 140 Zeichen):<br>
 +<textarea id="message" name="message" cols="50" rows="2"
 +          onkeyup="zeigeAnzahlZeichen(this.value)">
 +</textarea><br>
 +<span id="AnzahlZeichen">0 Zeichen</span>
 +</p>
 +</body>
 +</html>
 +
 +</code>
 +
 +
 +{{:e1:1234.png?400|}}
 +
 +Dem textarea-Element wird über das onkeyup-Attribut die JavaScript-Methode zeigeAnzahlZeichen mit dem Parameter this.value zugewiesen. this bezieht sich auf das zugehörige textarea-Element, das ein Attribut value hat (http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#textarea) in dem der eingegebene Text „Hier wird getwittert!“ steht. In der JavaScript-Funktion zeigeAnzahlZeichen wird mit value.length die Länge (http://de.selfhtml.org/javascript/objekte/string.htm) des übergebenen String-Parameters value ermittelt und der Text " Zeichen" drangehängt. Mit document.getElement¬ById('AnzahlZeichen') wird im Dokument das HTML-Element gesucht, das im Attribut id den Wert AnzahlZeichen hat. Es handelt sich um das span-Element. Über innerHTML hat man lesenden und schreibenden Zugriff auf den Inhalt dieses Elements, also zu Beginn auf 0 Zeichen. Dieser Inhalt wird über die Zuweisung an innerHTML bei jedem Tastendruck aktualisiert.
 +
 +**Aufgaben**
 +
 +  - Verwende getElementsByName anstelle von getElementById [[http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name|Siehe auch]]
 +  - Beschränke die Eingabe auf 140 Zeichen.
 +
 +====== Variablen und Kontrollstrukturen ======
 +Eine ausführliche Zusammenstellung der JavaScript-Sprachbestandteile findet man unter http://webkompetenz.wikidot.com/html-handbuch:ecmascript-sprachbestandteile. 
 +Wir analysieren das RGB-Beispiel:
 +<code html>
 +<!DOCTYPE html>
 +<html>
 +<head>
 +  <meta charset="utf-8">
 +  <title>Farben</title>
 +  <script language="javascript">
 +  function setElementBackground( elementID ) {
 +    var red   = Math.floor(Math.random() * 256);
 +    var green = Math.floor(Math.random() * 256);
 +    var blue  = Math.floor(Math.random() * 256);
 +    var rgb   = 'rgb(' + red + ',' + green + ',' + blue + ')';
 +    var obj = document.getElementById(elementID);
 +    if (obj != null) {
 +      obj.style.background = rgb;
 +      document.getElementsByTagName("p")[1].innerHTML = rgb;
 +    }
 +  }
 +  </script>
 +  <style type="text/css">
 +  #Farbflaeche {
 +    width:    18em;
 +    padding:  1em;
 +    border:   1px solid #999999;
 +  }
 +  </style>
 +</head>
 +<body>
 +  <div id="Farbflaeche">
 +    <p>Ändere die hässliche Hintergrundfarbe!</p>
 +    <p></p>
 +  </div>
 +  <button onclick="setElementBackground('Farbflaeche');">Klick mich!</button>
 +</body>
 +</html>
 +</code>
 +Dem Button-Element wird über das Attribut onclick die JavaScript-Funktion setElementBackground zugewiesen. Als Parameter wird die ID der Farbfläche übergeben. Die JavaScript-Funktion berechnet zufällige red, green und und blue-Werte. In der String-Variablen rgb wird das Ergebnis zusammen¬gesetzt. Falls es ein HTML-Element mit dem Attribut id = 'Farbflaeche' gibt, so wird dessen Hinter¬grundfarbe auf die Zufallsfarbe gesetzt.
 +
 +**Aufgabe**
 +Verwende document.getElementsByTagName, um im zweiten <p>-Element den rgb-Wert als String anzuzeigen. http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_tag_name
 +
 +====== Verweise ändern ======
 +Im nächsten Beispiel werden dynamisch Verweise geändert.
 +<code html>
 +<!DOCTYPE html>
 +<html>
 +<head>
 +<meta charset="utf-8">
 +<title>Coole Links</title>
 +<script>
 +var Links = [
 +    "http://www.storiesinflight.com/html5/",
 +    "http://html5boilerplate.com/",
 +    "http://www.cssclip.com/",
 +    "http://www.iconarchive.com/",
 +    "http://www.oswd.org/"
 +];
 +var AktuellerLink = 0;
 + 
 +function CoolLink() {
 +  document.getElementById("CoolerLink").href = Links[AktuellerLink];
 +  document.getElementById("CoolerLink").innerHTML = Links[AktuellerLink];
 +  AktuellerLink += 1;
 +  if (AktuellerLink >= Links.length)
 +    AktuellerLink = 0;
 +}
 +</script>
 +</head>
 +<body onload="CoolLink();">
 +<div style="width: 500px; padding: 5px; border: 2px solid silver; font-size: 20px">
 +  <a id="CoolerLink"></a>
 +</div>
 +<button type="button" onclick="CoolLink();">nächster Verweis</button>
 +</body>
 +</html>
 +</code>
 +{{:e1:linkaendern.png?400|}}
 +Über den Eventhandler onclick wird die JavaScript-Funktion CoolLink aufgerufen. Im JavaScript-Bereich ist eine Variable Links als Feld von fünf URL-Strings definiert. In der Variablen AktuellerLink wird der aktuelle Index in das Feld gespeichert. Beim Aufruf von CoolLink wird mit document.getElementById("CoolerLink") das <a>-Element mit id="CoolerLink" bestimmt. Zuerst wird dessen href-Attribut und dann sein Inhalt auf den aktuellen Link gesetzt. Danach wird der Wert von AktuellerLink erhöht und bei Bedarf auf 0 gesetzt.
 +CoolLink wird wegen des Eventhandlers onload auch nach dem Laden des Dokuments aufgerufen.
 +
 +**Aufgabe**
 +Erweitere das Dokument so, dass zusätzlich AktuellerLink ausgegeben wird.
 +
 +
 +
 +
 +
 +
  
  • /var/www/infowiki/data/attic/e1/javascript.1512806482.txt.gz
  • Zuletzt geändert: 2017/12/09 08:01
  • von admin03