OPPATRIA: Script funkt im IE 3 nicht

Das folgende Script für eine neue Menuleiste krieg' ich im IE 3 einfach nicht zum laufen:

<script language="JavaScript">
function navItem (name, num, base, width, height) {
      this.over = new Image();
      this.over.src = "images/" + name + "on.gif";
      this.out = new Image();
      this.out.src = "images/" + name + "off.gif";
      this.set = new Image();
      this.set.src = "images/" + name + "set.gif";
      this.base = base;
      this.num = num;
}

function nav_new (name,num,base) {
      navItem[name] = new navItem(name,num,base);
}

function img_over (imgName) {
    if (document.images) {
        if (document [imgName].src != navItem[imgName].set.src) {
                document[imgName].src = navItem[imgName].over.src;
        }
    }
}

function img_out (imgName) {
    if (document.images) {
        if (document [imgName].src != navItem[imgName].set.src) {
                document [imgName].src = navItem[imgName].out.src;
        }
    }
}

function img_set (imgName) {
    if (document.images) {
                document ['nav1'].src = navItem['nav1'].out.src;
                document ['nav2'].src = navItem['nav2'].out.src;
                document ['nav3'].src = navItem['nav3'].out.src;
                document ['nav4'].src = navItem['nav4'].out.src;
                document ['nav5'].src = navItem['nav5'].out.src;
                document ['nav6'].src = navItem['nav6'].out.src;
                document ['nav7'].src = navItem['nav7'].out.src;
                document ['nav8'].src = navItem['nav8'].out.src;
                document ['nav9'].src = navItem['nav9'].out.src;
                document ['nav10'].src = navItem['nav10'].out.src;
            document [imgName].src = navItem[imgName].set.src;
    }
}

function load_nav (name, num) {
        for (i = 1; i <= num; i++) nav_new(name + i,num,name);
}

if (document.images != null) load_nav ('nav', 10);

</script>

Kann mir jemand helfen ??

Danke

OPPS

  1. Hallo

    Das folgende Script für eine neue Menuleiste krieg' ich im IE 3 einfach nicht zum laufen:

    <script language="JavaScript">
    function navItem (name, num, base, width, height) {
          this.over = new Image();

    <snip code>

    Kann mir jemand helfen ??

    Nein, dir kann keiner helfen. IE3 kennt das Image-Objekt nicht!

    Claus

    1. Claus schrieb:

      Nein, dir kann keiner helfen. IE3 kennt das Image-Objekt nicht!

      Naja gut, Pech gehabt, dann gibts beim IE 3 eben keine
      Anim.

      Aber er müsste doch zumindest trotzdem den Links folgen.
      Habe das ganze mit 'nem doppelten Frameverweis kombiniert. Es tut sich aber ÜBERHAUPT nichts.

      <a href="javascript:zwei('musik/balken.htm',1,'musik/index.htm',2)"
              onMouseover= "img_over('nav1')"
              onClick= "img_set('nav1')"
              onMouseout= "img_out('nav1')">
              <img src="images/nav1off.gif"  border="0" name="nav1" alt="Musik"></a>

      Hülfe
      OPPS

      1. Aber er müsste doch zumindest trotzdem den Links folgen.

        sorry, da kann ich jetzt auch nicht weiterhelfen
        href="javascript: .." mit IE3 - sowas habe ich noch nicht gemacht ..

        Aber bzgl. onMouseOver noch für Dich zur Hilfe:

        Ich hatte auch immer schwierigkeiten mit dem IE3 und onMouseOver

        hier meine Standard-Lösung:

        geladen = 0;

        if (document.images) {
          k1 = new Image(); k1.src = "k_1.gif";
          // weitere Bilder laden
          geladen = 1;
        }
        else  // für IE3 die *.src definieren:
        {
          m0.src = ''; m1.src = ''; m2.src = ''; m3.src = ''; m4.src = ''; m5.src = ''; m6.src = ''; m7.src = ''; m8.src = '';
          k1.src = ''; k2.src = ''; fav0.src = ''; fav1.src = '';
          geladen = 0;
        }

        .... und:

        function BildAn(Bild, Mittelbild) {
        if (geladen) {
            if (document.images) { document[Bild].src=k2.src; document['Mittelbild'].src=Mittelbild}
            }
        }

        Der "else" Zwei ist wichtig - sonst bekommst Du im IE3 evtl. einen Script-Fehler. Das alles ist mit Gürtel und Hostenträger programmiert - aber da bist Du dann auf jeden Fall auf der sicheren Seite.

        1. Aber er müsste doch zumindest trotzdem den Links folgen.

          sorry, da kann ich jetzt auch nicht weiterhelfen
          href="javascript: .." mit IE3 - sowas habe ich noch nicht gemacht ..

          MMmmhh, also laut http://www.teamone.de/selfhtml/teda.htm müsste der IE 3 es ja können ...

          Aber bzgl. onMouseOver noch für Dich zur Hilfe:

          else  // für IE3 die *.src definieren:
          {
            m0.src = ''; m1.src = ''; m2.src = ''; m3.src = ''; m4.src = ''; m5.src = ''; m6.src = ''; m7.src = ''; m8.src = '';
            k1.src = ''; k2.src = ''; fav0.src = ''; fav1.src = '';
            geladen = 0;
          }

          Klar, alle src einzeln definieren. <schlagvornkopf>

          .... und:

          function BildAn(Bild, Mittelbild) {

          »»  if (geladen) {

          if (document.images) { document[Bild].src=k2.src; document['Mittelbild'].src=Mittelbild}
              }
          }

          Der "else" Zwei ist wichtig - sonst bekommst Du im IE3 evtl. einen Script-Fehler. Das alles ist mit Gürtel und Hostenträger programmiert - aber da bist Du dann auf jeden Fall auf der sicheren Seite.

          Hupps, welcher " 'else' Zwei " ?

          Aber danke
          OPPS

          1. Hupps, welcher " 'else' Zwei " ?

            der hier:
            else  // für IE3 die *.src definieren:

            PS: korrigiere "else ZweiG" - wa ei Tippfele - ic hatt de letzte Buchstabe vergesse

            1. PS: korrigiere "else ZweiG" - wa ei Tippfele - ic hatt de letzte Buchstabe vergesse

              N, is kla

              Trotzde dank

              Gru
              OPP

  2. Halli hallo!

    Was mir "ins Auge springt" ist

    document ['nav5'].src = navItem['nav5'].out.src;

    muesste geschrieben werden:

    document.images['nav5'].src = navItem['nav5'].out.src;

    Gruß
    Thomas