Java(-Script) Workshops -> Browserweiche

Eine Browserweiche ist ein Script, das genutzt wird, um für Benutzer von verschiedenen Browsern verschiedene auf verschiedene Seiten weiterzuverzweigen. Sinn und Zweck ist dabei meist, das unterschiedliche HTML- oder JavaScript-Dialekte verwendet wurden. Eines muss aber klar gesagt werden: Wer heutzutage eine neue Seite schreibt, benötigt keine Browserweiche! Mit aktuellem (X)HTML und JavaScript kann man gute Seiten schreiben, die kompatibel zu allen Browsern sind. Und wenn ein Browser eine bestimmte Eigenschaft nicht unterstützt, die man gerne verwenden würde - dann darf man sie halt nicht verwenden. Das macht die Seite dann auch nicht schlechter. Aber naja - wer unbedingt eine Browserweiche haben will, der soll eine bekommen.

Dreh- und Angelpunkt der Browserweiche ist natürlich das navigator-Objekt. Die einfachste Art der Browserweiche ist dieser Art:

<script type="text/javascript">
<!--
if(navigator.appName.indexOf("Internet Explorer")>=0) {
location.href="ie.html"; // Seite für den Internet Explorer
} else if(navigator.appName.indexOf("Netscape")>=0) {
location.href="ns.html"; // Seite für Mozilla-Browser
} else if(navigator.appName.indexOf("Opera")>=0) {
location.href="op.html"; // Seite für Opera
} else {
location.href="else.html"; // Seite für andere Browser
}
//-->
</script>


Interessanter ist vielleicht eine Browserweiche wie diese, die DOM-fähige Browser aussortiert:

<script type="text/javascript">
<!--
try {
document.getElementsByTagName("body");
if(document.implementation.hasFeature("Core","2.0")) {
// DOM Level 2-fähiger Browser
location.href="dom20.html";
} else {
// DOM Level 1-fähiger Browser
location.href="dom10.html";
}
} catch(e) {
// Nicht DOM-fähiger Browser
location.href="static.html";
}
//-->
</script>


Natürlich lässt sich das auch kombinieren, etwa so:

<script type="text/javascript">
<!--
try {
document.getElementsByTagName("body");
if(document.implementation.hasFeature("Core","2.0")) {
// DOM Level 2-fähiger Browser
location.href="dom20.html";
}
// DOM Level 1-fähiger Browser
location.href="dom10.html";
} catch(e) {
// Nicht DOM-fähiger Browser
if(navigator.appName.indexOf("Internet Explorer")>=0) {
location.href="ie.html"; // Seite für den Internet Explorer
} else if(navigator.appName.indexOf("Netscape")>=0) {
location.href="ns.html"; // Seite für Mozilla-Browser
} else {
location.href="else.html"; // Seite für andere Browser
}
}
//-->
</script>