nicnac: bitte bitte helfen - finde den fehler nicht

hi,

ich habe jetzt eine browserweiche geschrieben, die im nn auch funktioniert. wie script zeigt, öffnet er bei 4.7 browsercheck.html und zum testen ab 4.75 sitemap.html

aber der ie, da läuft es einfach nicht...
(opera läuft als ie, da kommt auch nichts muß glaub ich auch nicht...
ich denke daß nur die neueren versionen allgemein im umlauf sind. früher werden wohl nicht so viele von opera gehört haben und die haben dann bestimmt auch schon ne neuere version ... oder irre ich mich da?

also, jetzt aber das script...

var ua = navigator.userAgent.toLowerCase()
var netscapebrowser = (ua.indexOf("mozilla")!=-1
&& ua.indexOf("compatible")== -1
&& ua.indexOf("opera")== -1)
var iebrowser = (ua.indexOf("msie")>-1)
function bestimme_vers() {return Math.round(parseFloat(navigator.appVersion) * 1000);}

version = bestimme_vers()

if(netscapebrowser){
 var versionsnummer = version}
else if (iebrowser){
 if (version > 4000){
 versionsnummer = 3}
 if (version == 4000 && ua.indexOf ("msie 5")== -1){
 versionsnummer = 4}
 if (version == 4000 && ua.indexOf("msie 5")> -1){
 versionsnummer = 5 }
 if (version == 4000 && ua.indexOf("msie 6")> -1){
 versionsnummer = 6 }
}

if (netscapebrowser&&versionsnummer<=4740)
{
  refWin=open("information/browsercheck.html","","width=440,height=340,screenX=20,screenY=20");
  refWin.focus();
}
if (netscapebrowser&&versionsnummer>4740)//nur zum testen ob browserweiche funzt
{
  siteWin=open("sitemap/sitemap.html","","width=540,height=450,screenX=20,screenY=20,resizable,scrollbars");
  siteWin.focus();
}

if (iebrowser&&versionsnummer==3&&versionsnummer==4)
{
  refWin=open("information/browsercheck.html","","width=440,height=340,screenX=20,screenY=20");
  refWin.focus();
}
if (iebrowser&&versionsnummer==5&&versionsnummer==6)//nur zum testen ob browserweiche funzt
{
  siteWin=open("sitemap/sitemap.html","","width=540,height=450,screenX=20,screenY=20,resizable,scrollbars");
  siteWin.focus();
}

danke
nicnac

  1. aber der ie, da läuft es einfach nicht...

    ich denke daß nur die neueren versionen allgemein im umlauf sind.
    früher werden wohl nicht so viele von opera gehört haben und die
    haben dann bestimmt auch schon ne neuere version ... oder irre ich
    mich da?

    Sobald du diese Annahme machst, kommt garantiert jemand vorbei, bei dem diese Annahme nicht zutrifft [Murphy's Browserweichengesetz].

    if (iebrowser&&versionsnummer==3&&versionsnummer==4)

    if (iebrowser&&versionsnummer==5&&versionsnummer==6)

    Na, was fällt dir auf?
      soenk.e

    1. Sobald du diese Annahme machst, kommt garantiert jemand vorbei, bei dem diese Annahme nicht zutrifft [Murphy's Browserweichengesetz].

      stimmt... tja so ist das halt. war auch nur als frage gedacht, mit ner präzisen aussage wie deiner jetzt!

      if (iebrowser&&versionsnummer==3&&versionsnummer==4)

      if (iebrowser&&versionsnummer==5&&versionsnummer==6)

      Na, was fällt dir auf?

      leider nix...
      ich glaub ich brauch jetzt nen schokoladen - nikolausi... *g*
      ich habe es schon mit der layer methode versucht, sitze den ganzen tag an irgendwelchen scripten und jetzt brummt nur noch der schädel...

      nicnac

    2. so..
      auch ohne schokolade...

      ich denk mal du meintest das so oder?

      if ((iebrowser&&versionsnummer==3)||(iebrowser&&versionsnummer==4))

      denn jetzt geht es.

      thanx

      nicnac

      1. ich denk mal du meintest das so oder?

        if ((iebrowser&&versionsnummer==3)||(iebrowser&&versionsnummer==4))

        So in der Art, ja. Den doppelten iebrowser hätte ich allerdings weggelassen, aber das ist wohl Geschmackssache. Hauptsache du zwingst keine Variable gleichzeitig 3 und 4 zu sein ;)
          soenk.e

  2. hi,

    ich habe jetzt eine browserweiche geschrieben, die im nn auch funktioniert. wie script zeigt, öffnet er bei 4.7 browsercheck.html und zum testen ab 4.75 sitemap.html

    Abhängig davon, wozu du eine Browserweiche benötigst, solltest du entsprechenden Code benutzen.

    Fall 1: Browserunterscheidung zum Benutzen verschiedener Zugriffsmethoden auf Layer.

    Ein simpler Dreizeiler unterscheidet die Typen:
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    v6 = (document.getElementById)? true:false

    Achtung: Mehrere Variablen können gleichzeitig wahr sein, die Layerroutine sollte das mit "if elseif elseif" berücksichtigen und nur jeweils einen Codeteil zum Zuge kommen lassen. Und diese Vorgehensweise ersetzt nicht die Prüfung auf das Vorhandensein weiterer Objekte, die man benutzt. Auch wenn die Variablen so einladend aussehen, sie sagen NICHT aus, daß man es mit Netscape 4, Internet Explorer 4 oder einem Browser Version 6 zu tun hat, sondern nur, daß der Browser die Objekte document.layers, document.all und/oder document.getElementById kennt.

    Fall 2: Browserunterscheidung nach Hersteller, Versionsnummer und Plattform.

    Nimm dazu einfach das "Ultimate client-side JavaScript client sniff" von Netscape. Damit kriegst du ganz sicher raus, was du für einen Browser hast. Wenn du das Script als externe Datei vor allen deinen Javascripten einbindest, muß der Browser weniger laden, und du machst weniger Fehler.

    Anwendung: Im Prinzip nur dann, wenn es um herstellerspezifische Unterschiede geht, also z.B. verschiedene CSS für PC und Mac (Schriftgrößen unterschiedlich bei pt-Angaben).

    Das Script gibts hier (zusammen mit ein paar umfangreichen und sehr wichtigen Zusatzinformationen): http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

    - Sven Rautenberg

    1. nochmals hi,

      das habe ich versucht, reicht für meine fälle nicht aus...
      ich krieg die seite einfach nicht unter 4.75 in nn optimiert... läßt budget und design nicht zu und zweiteres ist nicht von mir...

      Ein simpler Dreizeiler unterscheidet die Typen:
      ns4 = (document.layers)? true:false
      ie4 = (document.all)? true:false
      v6 = (document.getElementById)? true:false

      Fall 2: Browserunterscheidung nach Hersteller, Versionsnummer und Plattform.

      danke für die url...
      aber noch mal von vorne anfangen?

      ich schau sie mir mal gleich an.

      nicnac