JavaScript

Webseiten im Browser dynamisch anpassen

JavaScript (nicht zu verwechseln mit Java) ist eine Programmiersprache, die von jedem modernen Browser interpretiert wird. Im Gegensatz zu den bisher erläuterten Sprachen, welche Inhalt und Darstellung des Dokuments statisch beschreiben, wird die Abarbeitung von JavaScript erst durch Ereignisse ausgelöst. Manche Ereignisse sind vom Benutzer unabhängig, z.B. wenn die Seite komplett geladen ist, doch die meisten werden durch Aktionen des Benutzers ausgelöst – z.B. wenn die Maus über ein Element kommt, wenn Eingabe in ein Feld erfolgt, oder wenn ein Formular abgeschickt wird. Die in JavaScript programmierte Aktion zu einem Ereignis reicht von einer einfachen Eingabe-Prüfung bis hin zur Umgestaltung des Dokuments selbst.

JavaScript-Code kann in externen (eingebundenen) Dateien liegen, oder, entsprechend gekennzeichnet, an einer fast beliebigen Stelle der (X)HTML-Datei eingebettet sein. Aufgerufen wird er durch Ereignis-Attribute, die mit den meisten Tags verfügbar sind, z.B. "onload", "onmouseover", "onclick" usw. – wobei meistens eine Funktion aufgerufen wird, oder einer Variablen ein Wert zugewiesen wird.

Mit JavaScript kann die Größe und Position des Browserfensters ermittelt oder bestimmt werden, aber seine Hauptstärke ist die Anpassung des Dokuments selbst. Dabei können die Attribute vorhandener DOM-Knoten ausgelesen und auch geändert werden, z.B. um Farben festzustellen oder zu ändern, oder um Bilder auszutauschen. Doch darüber hinaus können Knoten gelöscht, angelegt und angebunden werden, kurzum man kann Teile des Dokuments komplett neu gestalten, oder sogar ein ganzes Dokument erstellen!

Kann mein PC mittels JavaScript ausspioniert werden?

Nein. JavaScript läuft in jedem Browser in einer so genannten Sandkiste, d.h. in einer geschützten Umgebung, aus der heraus kein Zugriff auf Ihre Dateien oder Rechnerdaten möglich ist.

In der rechten Spalte finden Sie Beispiele der Leistungsfähigkeit von JavaScript.

 

Sie surfen mit…

unbekannt   shades_smile
auf NCR

(Am Webserver in PHP ermittelt)

JavaScript ist ausgeschaltet
in Ihrem Browser.

<title>JavaScript - Tim Reeves Internet-Programmierung</title> <meta name= "description" content= "Browser-Technologie - Webseiten dynamisch anpassen mit JavaScript - Tim Reeves Internet-Programmierung" /> <meta name= "keywords" content= "JavaScript, Browser" /> <meta name= "date" content= "2008-09-17" /> <?php include("../head.inc.php"); $extraOnload = 'browserOnLoad();'; ?> <script type= "text/javascript"> /*<![CDATA[*/ function getBrowser() { var bn = '', bv = '', i, j; var agent = navigator.userAgent; var appnm = navigator.appName; // alert(agent); alert(appnm); if (appnm.indexOf('Netscape') >= 0) { // Most Open-Source Browsers say "Netscape" (FF, Safari, Chrome) i = agent.indexOf('Gecko'); j = agent.indexOf('KHTML'); // AppleWebKit, probably also Konqueror if (j >= 0) { // Safari, Google Chrome, Konqueror i = agent.indexOf('Chrome'); j = agent.indexOf('Safari'); if (i >= 0) { bn = 'Chrome'; i += 7; var j = i; j = agent.indexOf(' ',i); if (j < i) j = i; bv = agent.substring(i,j); // Get the WebKit version i = agent.indexOf('AppleWebKit/') + 12; j = agent.indexOf(' ',i); bv = bv + ' (' + agent.substring(i,j) + ')'; } else if (j >= 0) { bn = 'Safari'; // Get the internal version j += 7; var sv = agent.substring(j); // Get the external version i = agent.indexOf('Version/') + 8; j = agent.indexOf(' ',i); bv = agent.substring(i,j) + ' (' + sv + ')'; } else { bn = 'Konqueror'; bv = '?'; } } else if (i >= 0) { // agent contains "Gecko" but not "KHTML" - a real Gecko-Browser // Netscape ab 6.0 mit dem Gecko-Engine, i.e. also Firefox // Most precise is the word after Gecko/<date> - if there is one i = agent.indexOf(' ',i)+1; if (i < agent.length) j = agent.indexOf('/',i); else j = -1; if (j < i) { // Must be Mozilla - Version is Revision bn = 'Mozilla'; i = agent.indexOf('rv:'); if (i < 0) bv = '?'; else { i += 3; j = agent.indexOf(')',i); if (j<0 || j-i>4) j = 3; bv = agent.substring(i,j); } } else { // Probably Firefox bn = agent.substring(i,j); i = j+1; j = agent.indexOf(' ',i);