christophe: Browsercheck

Hallo,

wahrscheinlich ist das Thema angehend schon behandelt worden, ich bekomme aber die Scripte nicht unter einem Hut.....:

ich möchte gerne eine Browser-Abfrage basteln, die

  • alle NN- und IE-User mit nicht css- und js-kompatiblen Browsern abfängt,
    ach ja und NN 6 auch, wegen der fehlenden Layer-Darstellung:
    Also bleiben quasi NN 4.x und IE 4.x bis 5.x übrig, kann das sein?

  • auch möchte ich Downloads zu den obigen Version anbieten d.h. der Text mit den Links zu den Anbietern darf nur erscheinen bei Usern mit den nicht kompatiblen Browsern (also eine Abfrage mit den verschiedenen Versionen)

  • auch habe ich zwei Weiterleitungen (zwei Startdateien) die den User auf die richtige Seiten bringen sollten, das Script dazu:

<script language="javascript">

if (navigator.appName.indexOf("Netscape") != -1){
window.location = "nn/start.htm";}
if (navigator.appName.indexOf("Explorer") != -1){
window.location = "ie/start.htm";}
 else{
document.write('Dieser Text wird ausgegeben bei allen anderen Browsern. Alternativ kann hier natürlich aucheine URL angegeben werden.')
                                                }
</script>

zu der Browser-Erkennung habe ich folgenden Script, wie bringe ich da nur den Text mit den Links unter??:

<script language="javascript">
<!--
var where = document.referrer
var name = navigator.appName
var vers = navigator.appVersion

document.write("Sie benutzen... <BR>"+where+" <BR> "+name+"  "+vers+"<BR>")
// -->
</script>

Auf jeden Fall möchte ich das nicht so lösen, daß der User mit dem Browser den Link betätigt und der User mit dem Browser den Link betätigt  usw....
So das wars, ich weiß ist ein bißchen unmißverständlich das Ganze:
vielleicht nimmt sich einer von Euch ja die Zeit (und Geduld) und hift mir!

wäre echt klasse
dankeschön

christophe

  1. Hoi,

    ich möchte gerne eine Browser-Abfrage basteln, die

    • alle NN- und IE-User mit nicht css- und js-kompatiblen Browsern
      abfängt, ach ja und NN 6 auch, wegen der fehlenden
      Layer-Darstellung: Also bleiben quasi NN 4.x und IE 4.x bis 5.x
      übrig, kann das sein?
    • auch möchte ich Downloads zu den obigen Version anbieten d.h.
      der Text mit den Links zu den Anbietern darf nur erscheinen bei
      Usern mit den nicht kompatiblen Browsern (also eine Abfrage mit
      den verschiedenen Versionen)
    • auch habe ich zwei Weiterleitungen (zwei Startdateien) die den
      User auf die richtige Seiten bringen sollten, das Script dazu:

    <script language="javascript">

    if (navigator.appName.indexOf("Netscape") != -1){
    window.location = "nn/start.htm";}
    if (navigator.appName.indexOf("Explorer") != -1){
    window.location = "ie/start.htm";}
    else{
    document.write('Dieser Text wird ausgegeben bei allen anderen
    Browsern. Alternativ kann hier natürlich aucheine URL angegeben
    werden.')
                                                    }
    </script>

    Wenn du wirklich nur diese 3 Browser durchlassen willst, kannst
    du doch viel einfacher checken:

    <body>
     <script language="JavaScript">
      if(document.layers) {
        location.replace("nn/start.htm");
      }
      else if(document.all) {
        location.replace("ie/start.htm");
      }
     </script>

    Wenn Sie das hier sehen koennen, dann haben Sie entweder JavaScript
     deaktiviert oder einen mit den Funktionen dieser Seite nicht
     kompatiblen Browser.

    </body>

    Gruesse,
     CK

    1. Hallo CK,

      else if(document.all) {

      -------------^^^^^^^^^^^^

      Daß sowas überhaupt ungestraft als JavaScript bezeichnet werden darf... ;-)

      Viele Grüße
      Carsten

      PS (nicht an CK ;-): es scheint immernoch Leute zu geben, die nicht wissen, daß man mit demselben "JavaScript"-Code Netscape6/Mozilla und M$IE5 aufwärts (und noch'n paar Browser mehr) gleichzeitig erschlagen kann...

      1. else if(document.all) {
        -------------^^^^^^^^^^^^

        bei NN3.xx bekomme ich eine js-Fehlermeldung, klappt irgendwie nicht, danke trotzdem....

        PS (nicht an CK ;-): es scheint immernoch Leute zu geben, die nicht wissen, daß man mit demselben "JavaScript"-Code Netscape6/Mozilla und M$IE5 aufwärts (und noch'n paar Browser mehr) gleichzeitig erschlagen kann..

        ja wie denn?
        bitte, bitte...

        1. Hallo christophe,

          da Du in Deinem Ausgangsposting die "fehlende Layerdarstellung" als Grund für Deinen Netscape6-Ausschluß angibst, nehme ich mal an, daß Du "DHTML" auf Deinen Seiten verwirklichen willst. Dazu solltest du Dir das folgende durchlesen:
          http://selfhtml.teamone.de/dhtml/modelle/index.htm

          "DOM" (document.getElementById): für IE5 aufwärts und Mozilla/Netscape6 und ...

          "Das ältere DHTML-Modell von Microsoft" (document.all): für IE4 (wird aufgrund Microsoftscher Firmenpolitik aber dummerweise auch von IE5 aufwärts interpretiert)

          "Das ältere DHTML-Modell von Netscape" (document.layers): für NN4 (wird von Mozilla/Netscape6 konsequenterweise nicht mehr unterstützt, da sich dieser Browser an den vom W3C vorgegeben Standard hält)

          Viele Grüße
          Carsten

        2. Moin!

          ja wie denn?
          bitte, bitte...

          Wie du schon von CarstenP erfahren hast, ist die Methode der Wahl "getELementById". Das kann jeder AKTUELLE Browser. Probleme machen die alten Browser: Netscape 4 kennt nur "document.layers", und IE 4 kennt nur "document.all". Du hast es mit deiner Seite also geschafft, für die aussterbenden Browser zu schreiben. :)

          Die Sache ist aber einfacher, als es auf den ersten Blick aussieht. Meist will man irgendwelche Layer verstecken, und das geht so:

          <script type="text/javascript">
          //Browserunterscheidung
          ns4 = (document.layers)? true:false
          ie4 = (document.all)? true:false
          v6 = (document.getElementById)? true:false

          //Layer anzeigen.
          function showlayer(layerid)
            {
            if (ns4) document.layers[layerid].visibility = "show"
            else if (v6) document.getElementById(layerid).style.visibility = "visible";
            else if (ie4) document.all[layerid].style.visibility = "visible"
            }

          //Layer verstecken.
          function hidelayer(layerid)
            {
            if (ns4) document.layers[layerid].visibility = "hide"
            else if (v6) document.getElementById(layerid).style.visibility = "hidden";
            else if (ie4) document.all[layerid].style.visibility = "hidden"
            }
          </script>

          und als Layer simpel:

          <div id="eineID" style="position:absolute ...">

          Nur absolut positionierte Layer werden von Netscape 4 als Layer erkannt.

          Die spannenderen Sachen wie dynamische Positionierung etc. liest du dann besser in SelfHTML oder anderswo nach, dazu gibts ausreichend Informationen, die ich hier nicht noch mal alle duplizieren muß. :)

          - Sven Rautenberg

  2. Hallo an Euch alle,

    erstmal vielen Dank für die Fülle an Information:
    (habe nämlich generell wenig Info über Browser gefunden, deshalb mein Eintrag...)
    ich bin jetzt ein ganzes Stück vorangekommen, merke aber auch, daß ich mich mit der Thematik (die ja wirklich nicht unspannend ist) noch auseinandersetzten muß.

    ein schönen Tag noch
    und bis bald

    christophe