HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Hier werben | Impressum |
 

 
 

Anzeige 
 
               Forum
 
 
HTMLWorld » Übersicht: Browsersupport

Übersicht: Browsersupport

von Jan Winkler

Die Ünterstützung der einzelnen Komponenten - sei es nun JavaScript oder JScript - ist eines der essentiellsten Themen der Programmierung. Scripte die auf einem Browser laufen und auf einem anderen nicht bringen nur ein zweifelhaftes Vergnügen. Nicht zuletzt ist Browserübergreifendes Scripting eines der wichtigsten Kriterien nach denen ein Website-Programmierer bewertet wird.

Anzeige

Übersicht  nach oben

Die untenstehende Tabelle spiegelt die Untersützung der einzelnen Sprach-Versionen wieder. Es ist nicht davon auszugehen, dass jedes Programm der Liste die jeweilige Sprachversion vollständig oder fehlerfrei beherrscht - eine Überprüfung der verwendeten Statements empfiehlt sich in jedem Fall.

Interpreter Version JavaScript JScript
Microsoft Internet Explorer 3.0 ~ 1.0 1.0
Microsoft Internet Explorer 4.0 ~ 1.1 3.0
Microsoft Internet Explorer 5.0 ~ 1.3 5.0
Microsoft Internet Explorer 5.5 ~ 1.3 5.5
Microsoft Internet Explorer
6.0 ~ 1.5 .Net/6.0
Microsoft Internet Information Server 1.0 2.0
Microsoft Internet Information Server 2.0 2.0
Microsoft Internet Information Server 3.0 3.0
Microsoft Internet Information Server 4.0 3.0
Microsoft Internet Information Server
5.0 5.0
Netscape Navigator 2.0 1.0
Netscape Navigator 3.0 1.1
Netscape Navigator 4.0 - 4.05 1.2
Netscape Navigator 4.06 1.3
Netscape Navigator 6.0 / Mozilla 0.96
1.5
Netscape Enterprise Server* 2.0 1.0
Netscape Enterprise Server 3.0 1.1
Netscape Enterprise Server 3.6 1.2
Netscape Enterprise Server
4.0 1.4
Opera 3.0 1.1
Opera 4.0 1.3
Opera 5.0 1.3
Opera 6.0 1.3

* Umbenannt in iPlanet
Bitte beachten Sie: Objekte, Methoden, Eigenschaften (etc.) die innerhalb der Objektreferenz mit dem Vermerk auf JScript 6.0 beschrieben werden sind nicht zwangsläufig in JScript.NET funktionsfähig. Die Versionszahl verweist hier vielmehr darauf, dass diese Dinge im Internet Explorer 6.0 lauffähig sind.

Überprüfung  nach oben

Als Basis der Programmierung ist grundsätzlich vom schlechtesten Fall auszugehen. Der schlechteste Fall heist: Kein Support - weder für JavaScript noch für JScript. Websiten die Scripte beinhalten sollten immer Alternativmöglichkeiten bieten mit denen die Scripte umgangen werden können. Der zweitschlechteste Fall besteht, wenn ein Browser nur Teile der Sprache beherrscht oder fehlerhaft handelt. Grundsätzlich sollte darauf geachtet werden, dass Fehlermeldungen vermieden werden. Dies bedeutet: Bevor eine Funktion oder ein Statement verwendet wird, von dem bekannt ist, dass es nicht zu allen Browsern kompatibel ist, sollte geteste werden, ob es beim Browser Fehler hervorrufen kann um dann evtl. einen Alternativweg einschlagen zu können. Ein einfacher Test einer Funktion oder eines Objekts kann schon mit einer if-Abfrage realisiert werden. Beispiel:

if(document.all){ /*...*/ }
else{ /*...*/ } 

Anzeige

Im Beispiel: Wird das Objekt document.all - von dem wir wissen, dass es nur unter JScript verwendbar ist - unterstützt, kann problemlos damit gearbeitet werden. Wird es nicht unterstützt (else), sollte eine Alternative folgen (z.B. Layer).

Was ist jedoch generell mit Statements? Wie soll z.B. getestet werden ob das try-catch-Statement verwendet werden kann? Hier bleiben nur zwei Möglichkeiten: Entweder das Statement einfach verwenden und hoffen, dass es klappt, oder explizit die zu verwendende Sprach Version angeben. Da wir wissen, dass das Statement erst ab JavaScript 1.4 / JScript 5.0 verfügbar ist, lagern wir den Teil des Scriptes aus, der das Statement verwendet, und stecken ihn in einen script-Bereich, der explizit auf JavaScript 1.4 verweist. Wir können dann einfach wieder mit einer if-Abfrage testen, ob es diesen Teil für den Browser gibt (ob er also unterstützt wird). Umzusätzlich Fehler vorzubeugen kann außerdem mit typeof gearbeitet werden Beispiel:

<script language="JavaScript1.4">
<!--
function machwas()
{
try{ /* ... */ }
catch(e){ /* ... */ }
}
//-->
</script>

<script language="JavaScript1.2">
<!--
if(typeof(machwas) == 'function')
  { /* existiert und kann verwendet werden */ }
else
  { /* es muss nach anderen Alternativen gesucht werden */ }
//-->
</script> 

Bitte achten Sie darauf, dass zwar der Internet Explorer JavaScript als Scriptsprache versteht, jedoch JScript beim Netscape Naviagtor Probleme bereiten könnte. Es wird daher geraten sämtliche Scripte als JavaScript auszuzeichen.

 




 
     
 

Anzeige