Thomas: Umleitung nach Browsererkennung im Frameset

Ich benutze ein Java-Script zur automatischen Erkennung des Browsers innerhalb von Frames. Mit dem IE 5 klappt das auch wunderbar, nur leider nicht mit Netscape, dort wird immer eine neue Seite aufgemacht, anstatt die Seite in dem selben Fenster anzuzeigen.

Bitte helft mir.

Ich benutze folgendes Java-Script:

<html>
<head>
<title></title>
<script language="JavaScript">
function browser()
{
var name_des_browsers;
name_des_browsers=navigator.AppName;
if (name_des_browsers=="Netscape")
{
window.open ("menu-net.htm","_self");
}
if (name_des_browsers=="Microsoft Internet Explorer")
{
window.open("menu-ie.htm","_self");
}
else
{
window.open("menu-ie.htm","_self");
}
}

</script>
</head>

<body onload="browser ()">
<br>
<a href="menu-net.htm">Netscape</a><br>
<a href="menu-ie.htm">Internet Explorer</a><br>
<a href="menu-ie.htm">andere Browser</a><br>
</body>
</html>

  1. hallo Thomas,

    <script language="JavaScript">
    function browser()
    {
    var name_des_browsers;
    name_des_browsers=navigator.AppName;
    if (name_des_browsers=="Netscape")
    {
    window.open ("menu-net.htm","_self");
    }
    if (name_des_browsers=="Microsoft Internet Explorer")
    {
    window.open("menu-ie.htm","_self");
    }
    else
    {
    window.open("menu-ie.htm","_self");
    }
    }
    </script>
    </head>

    an deiner Stelle würde ich das ganze Skript so schreiben:
    <script language="JavaScript">
    if (navigator.appName=="Netscape")
        location.href="menu-net.htm";
    else
        location.href="menu-ie.htm";
    </script>

    diese Lösung ist genau die gleiche wie deine, hat aber einige Vorteile:

    1. du musst nicht warten, bis die seite vollständig geladen wurde, sondern du kannst schon beim Laden fest stellen, was für Browser der User hat, und entsprechend reagieren.
    2. du machst keinen Unterschied zwischen Internet Explorer, Netscape und anderen Browsern, d.h. dein else-Zweig in der if-Abfrage ist überflüssig.
    3. du belegst auch keine Variable mit dem Namen des Browsers, also sparst du ein paar Bytes an Speicherplatz...;)

    ich hoffe, das hilft weiter,
    bye,
    Balazs

    1. Danke für die schnelle Hilfe, es funktioniert.

      Gruss Thomas