Webdesign – Java
Kompatibilität zu Webbrowsern

DeveloperIT-ProjekteOffice-AnwendungenSoftware

Kompatibilität ___

Wie bei Java handelt es sich auch bei Javascript um eine plattformunabhängige Sprache. Dies bedeutet zumindest theoretisch, dass ein Programm ohne Änderung in jedem kompatiblen Webbrowser laufen sollte. In der Praxis sieht dies leider anders aus: Es gibt ? und das wird sich wohl auch in absehbarer Zeit nicht ändern ? nach wie vor Kompatibilitätsprobleme. Eine Möglichkeit, um mit diesen Inkompatibilitäten umzugehen, ist es, diese zu meiden. Dies führt jedoch dazu, dass Sie die vielen Möglichkeiten von Javascript kaum nutzen können. Empfehlenswert hingegen ist das Testen von Eigenschaften. Möchten Sie ein Merkmal nutzen, das nicht allenWebbrowsern bekannt ist, können Sie in Ihr Programm eine Abfrage einbauen, welche die Kompatibilität zu diesem Merkmal testet. Im folgenden Beispiel kommt die Funktion opener nur dann zumEinsatz,wenn der Webbrowser auf dem Client-Rechner diese Funktion unterstützt:

newWindow = window.open(“”,”new”,”width=500, height=300″);
if (!newWindow.opener) newWindow.opener = self;

Besonders beim Einsatz von DHTML-Effekten ist eine Test-Abfrage nützlich, da die einzelnen Effekte teils nur auf einigen Browsern zur Verfügung stehen oder unterschiedlich implementiert sind. Imfolgenden Beispiel kommt ein dynamischpositioniertes Dokument-Element zum Einsatz. Da jeder Webbrowser hierfür eine eigene API besitzt, prüft das folgende Programmstück, welche API zuständig ist:

if (document.getElementById) {
// W3C-DOM-API
}
else if (document.all) {
// IE-API
}
else if (document.layers) {
// Netscape-API
}
else {
// DHTML wird nicht unterstuetzt

Eine Alternative ist das plattformspezifische Anpassen von Programmen. Mit diesem Programmteil und dem navigator-Objekt können Sie Browser und System abfragen:

var browserVersion = parseInt(navigator.appVersion);
var isNetscape = navigator.appName.indexOf(“Netscape”) != -1;
var isIE = navigator.appName.indexOf(“Microsoft”) != -1;
var agent = navigator.userAgent.toLoweCase();
var isWindows = agent.indexOf(“win”) != -1;
var isMac = agent.indexOf(“mac”) != -1;
var isUnix = agent.indexOf(“x11”) != -1;

Lesen Sie auch :
Autor: swasi