diese seite widmet sich dem thema javascript. es bestand zu keiner zeit der anspruch, ein zweites selfhtml für javascript zu erstellen. hier werden nur einige lösungen für häufig vorkommende problemstellungen beim erstellen eines internet auftritts vorgestellt. einige der skripte werden auch auf dieser seite verwendet.
besonderes augenmerk habe ich dabei auf kompatibilität zwischen allen wichtigen windows browsern (ms internet explorer 5.0, netscape 4.7x und netscape 6.0) gelegt. vorallem netscape 6 stellt in einigen bereichen (z.b. ansprechen von layern aus dem javascript code) ein problem dar.

vorausgesetzt wird, dass man sich bereits mit html und javascript auskennt. einige beispiele sind zwar relativ einfach aufgebaut, erfordern aber trotzdem ein basiswissen der sprache. (bedingungen, blöcke, schleifen usw.)

der inhalt
erzeugen von html quelltext durch javascript
den browser erkennen


 erzeugen von html quelltext durch javascript
 
1. warum eigentlich?

zunächst ist man versucht zu fragen, warum man html tags und ähnliches durch javascript erzeugen sollte. die antwort ist schnell gegeben: es ist dynamischer, man kann zwischen verschiedenen browsern unterscheiden und teilweise ist es einfach übersichtlicher.
beobachten sie zum beispiel das menü auf der rechten seite, wenn sie auf diesen link klicken. die bezeichnung javascript verschwindet für ca. eine minute und erscheint dann wieder. dies wird dadurch erreicht, dass dieses fenster über javascript neu erstellt wird.
natürlich kann dieser effekt auch mit anderen mitteln erzeugt werden, aber so funktioniert es wesentlich einfacher.

2. was soll erzeugt werden?

wir möchten eine tabelle erzeugen, die einen link enthält. als beispiel soll folgendes dienen:

seite neu laden

das ist ein sehr einfaches beispiel. aber auf dieser seite werden fast alle links durch javascript erzeugt, so kann man durch editieren des quellcodes das aussehen aller links beeinflussen. der entsprechende html quellcode zu dieser ausgabe sieht wie folgt aus:


damit das skript relativ flexibel wird, ermöglichen wir das übergeben von zwei parametern, der zieladresse (index.htm) und dem angezeigten text (seite neu laden). wir benötigen also eine funktion in der form:

function writeLink(url, text){
}

3. der javascript code

der quellcode ansich ist nun leicht erstellt. als erstes muss man sich eine variable definieren, in welche man den generierten html quelltext ablegt (var str=""). danach weisen wir dieser variablen den text zeile für zeile zu (str+="..."). an den passenden stellen werden dabei die variablen eingesetzt (str+=url, bzw. str+=text). zum schluss wird der so erzeugte text in das html dokument geschrieben (document.write(str)). fertig!
hier nun der entsprechende quellcode:


4. die funktion verwenden

um die funktion zu verwenden, rufen sie das skript an einer passenden stelle auf ihrer seite auf, also zum beispiel:


 




 den browser erkennen
 
1. wozu die information verwenden?

theoretisch sieht ja alles ganz wunderbar aus. aktuelle browser unterstützen html 4 und javascript ab version 1.3. fantastisch! zudem hat eine organisation, die sich ecma nennt, eine standard sprachanforderung herausgegeben, dass heisst, es gibt funktionen, die einfach unterstützt werden müssen. soviel zur theorie. wie jeder weiss, sieht die sache in der praxis etwas anders aus. der internet explorer von microsoft spricht seine objekte in javascript anders an, als sein konkurrent der netscape navigator 4.7x. das war ja bekannt. seit anfang 2001 gibt es aber eine neue version von netscape, den navigator 6.0 (5.0 wurde ausgelassen). auf den ersten blick ist diese release das beste was den webmastern passieren konnte, da netscape endlich einen nahezu vergleichbaren funktionsumfang besitzt wie der explorer. doch leider, leider ergeben sich beim genauerem hinschauen probleme: netscape 6 ist teilweise inkompatibel zu seinem vorgänger (z.B. verwaltung des layer-objektes).

aus diesem grund muss man zwischen den browsern unterscheiden können, denn will man zum beispiel das documentobjectmodell in seinen skripten verwenden, muss man von vornherein netscape 4.7x und den explorer 4 und kleiner ausschließen.

2. wie man den internet explorer von netscape unterscheidet

will man nur zwischen ie (internet explorer) und nc (netscape comunicator) unterscheiden, muss man nicht unbedingt tief in die trickkiste greifen. in diesem beispiel ist die variable isie true, wenn es sich nicht um nc handelt (also z.b. bei ie oder opera).

var isie=(navigator.appName=='Netscape' ? false : true);

3. welche version wird verwendet

man kann auch relativ einfach die (einstellige) versionsnummer des browsers auslesen. wir speichern das ergebniss der prüfung in der variable isver.

if (isie==true) {
  var tel=navigator.appVersion.toUpperCase();
//echte versionsnummer steht im ie hinter der zeichenkette "MSIE"
  var pos=tel.indexOf('MSIE') + 5;
} else {
  var pos=0;
}
isver = navigator.appVersion.charAt(pos);

4. unterstützt der browser dom funktionen

das neue dom ist eine wirklich gute erfindung, man kann damit html objekte im javascript erzeugen (ohne dazu document.write zu verwenden) und sie nach belieben verändern oder sogar entfernen (leider in netscape 6 nicht möglich). dummerweise unterstützt diesen standard nicht jeder browser, also wäre es gut, wenn man abfragen könnte, ob diese funktionen unterstützt werden. auch diese prüfung ist sehr einfach zu realisieren.
isdom erhält hier den wert true, wenn dom funktionen unterstützt werden.

var isdom=(document.childNodes ? true : false);