Nicole: MouseOvereffekt innerhalb eines Layers (NN 4.0)

kann mir mal bitte jemand bei der funktion helfen, ich finde einfach den fehler nicht.

browserabfrage und dann folgt:
function activ1(imgName)
{

if(browser = "Netscape 4.0")

{
if (document.images)
{
if(window.document.unternavi_unternehmen.visibility == "show")
{document.unternavi_unternehmen.document[imgName].src = eval(imgName + "_on.src");}
...(weitere layer)
}}}
ich kriege im NN einfach nicht den Mouseovereffekt hin.

vielen dank für die hilfe im voraus

  1. hallo nicole
    willst Du ebene ein-ausblenden oder bildtauschen in der ebene?
    Gruß Burkhard

    1. hallo nicole
      willst Du ebene ein-ausblenden oder bildtauschen in der ebene?
      Gruß Burkhard

      _____________________

      ich will bilder austauschen sprich mouseovereffekt. das ein- und ausblenden funktioniert.
      mein normales script für den austausch der grafiken funktioniert da leider nicht, hatte bis dato auch nicht gewußt, daß man in nn 4.0 grafiken im layer anders ansprechen muß.
      deswegen habe ich die abfrage und das skript.

      gruß nicole

      1. hallo nicole
        willst Du ebene ein-ausblenden oder bildtauschen in der ebene?
        Gruß Burkhard

        _____________________

        ich will bilder austauschen sprich mouseovereffekt. das ein- und ausblenden funktioniert.
        mein normales script für den austausch der grafiken funktioniert da leider nicht, hatte bis dato auch nicht gewußt, daß man in nn 4.0 grafiken im layer anders ansprechen muß.
        deswegen habe ich die abfrage und das skript.

        gruß nicole

        na dann versuch es mal so:
        Das sollte Dir weiter helfen

        n = (document.layers) ? 1:0
        ie = (document.all) ? 1:0
        ns = (document.getElementById) ?1:0

        function img_change(layername, imagename, newimage) {

        if (n) eval("document."+layername+".document.images[imagename].src =eval(newimage+'.src')")
            if (ie) document.images [imagename].src = eval(newimage+'.src')
            if (ns) document.images[imagename].src = eval(newimage+'.src')

        }
        Gruß Burkhard

        1. hallo nicole
          willst Du ebene ein-ausblenden oder bildtauschen in der ebene?
          Gruß Burkhard
          na dann versuch es mal so:
          Das sollte Dir weiter helfen

          n = (document.layers) ? 1:0
          ie = (document.all) ? 1:0
          ns = (document.getElementById) ?1:0

          function img_change(layername, imagename, newimage) {

          if (n) eval("document."+layername+".document.images[imagename].src =eval(newimage+'.src')")
              if (ie) document.images [imagename].src = eval(newimage+'.src')
              if (ns) document.images[imagename].src = eval(newimage+'.src')

          }
          Gruß Burkhard

          ______________________________

          dir auch danke.

          ist ja echt super das forum.
          hätte ich das gewußt, wäre ich gleich hierher... ist jetzt meine erste adresse, wenns mal wieder hängt.

          ich werde das auch gleich mal testen.

          vielen dank nochmal und ein schönes we

          somit wäre mir auch ein angenehmes we beschert. der streß deswegen fällt endlich weg *g*

          nicole

        2. hallo,

          'snief' habe beide scripte ausprobiert.... es will nicht.
          ich erhalte ne fehlermeldung:
          document.unternavi_unternehmen.document.images[imgName] has
          no properties.

          manno, stell ich mich so dumm an?

          war das wochenende leider doch nicht so ruhig. lacht.

          wenns hilft kann ich auch ne url rübergeben.
          oh gott, muß doch diese woche fertig werden. *lacht*

          nicole

          1. Hallo Nicole

            da war ja auch ein kleiner Fehler in den Scripten von Thomas und Burkhard (erstaulicherweise beide Male der gleiche).

            document.unternavi_unternehmen.document.images[imgName] has

            Statt dessen müßtest Du nämlich
            document.unternavi_unternehmen.document.imgName
            ansprechen.

            Für den Code von Burkhard bedeutet das, statt

            if (n) eval("document."+layername+".document.images[imagename].src =eval(newimage+'.src')")

            muß es

            if (n) eval("document."+layername+".document."+imagename+".src =eval(newimage+'.src')")

            heißen. Die beiden haben nämlich eine Variante beschrieben, in der man nicht den Image-Namen, sondern den Image-Index (1. Bild =0, 2. Bild =1 etc.) übergeben müßte.

            viel Erfolg
            axel

            1. heißen. Die beiden haben nämlich eine Variante beschrieben, in der man nicht den Image-Namen, sondern den Image-Index (1. Bild =0, 2. Bild =1 etc.) übergeben müßte.

              index nehme ich eigentlich sonst auch immer, wenn es überschaubar ist, aber ich will mich ja nicht totzählen, vor allem, wenn vielleicht irgendwo ein spacer fehlt *g*
              ist mir gar nicht aufgefallen...

              so, irgendwie scheint montag nicht mein tag zu sein...
              jetzt bringt er zwar keine fehlermeldung mehr, aber die mouseover wollen immer noch nicht..... *snief*

              so sieht die funktion jetzt aus...

              function activ1(layer,imagename,imgObj)  //Wechsel Unternavi in Layer und Headline auf aktiv
              {
               if (document.images){
               if (document.layers && layer!=null)  eval("document."+layer+".document."+imagename+".src = eval(imgObj+'.src')");
               else document[imagename].src = eval(imgObj+'.src');
                  document["headline"].src = eval(imagename + "_head.src");
               }
              }

              nicole *leicht konfus*

              1. Tagchen

                Ich verstehe das Problem nicht. Schau Dir mein Script noch einmal genau an. Meine Variante funktioniert tadellos mit Netscape 4.6, das habe ich eben noch einmal getestet.
                Mir scheint, Du bist bei diesen beiden hier (' bzw. ") etwas durcheinander gekommen. Da reagieren Browser manchmal sehr empfindlich.

                Außerdem:

                if (document.layers && layer!=null)
                eval("document."+layer+".document."+imagename+".src = eval ...
                Fehler:                         ^^^^^^

                Richtig:
                eval("document."+layer+".document.images["+imagename+"].src = eval ...

                Du kannst die Funktion übrigens auch außerhalb von Layern bzw. Divs verwenden. Dazu mußt Du nur statt dem Div-Namen "NULL" angeben.

                Thomas J.

                1. Nachtrag.

                  Eine ausführliche Beschreibung gibt es hier:
                  http://www.dansteinman.com/dynduo/en/images.html

                  1. Nachtrag.

                    Eine ausführliche Beschreibung gibt es hier:
                    http://www.dansteinman.com/dynduo/en/images.html

                    super. danke.

                    habe schon an mir gezweifelt.

                    nicole

                2. Tagchen

                  Ich verstehe das Problem nicht. Schau Dir mein Script noch einmal genau an. Meine Variante funktioniert tadellos mit Netscape 4.6, das habe ich eben noch einmal getestet.
                  Mir scheint, Du bist bei diesen beiden hier (' bzw. ") etwas durcheinander gekommen. Da reagieren Browser manchmal sehr empfindlich.

                  hi,

                  nicht böse sein, ich verspreche auch mir meine haare nie wieder blond zu färben... *g*
                  könntest du mal über die datei sehen?
                  es will einfach nicht bei mir. win 2000 / nn 4.75, 4.78
                  der austausch der headline funktioniert, es wird keine fehlermeldung angezeigt (außer wenn ich image vor ["'+imgName+'"] stehen lasse. im ie funktioniert es, nn6 und opera auch.

                  hier der link zur site - keinen schreck kriegen, auf wunsch des kunden habe ich alles mit vorlagen und bibl.-elementen vom dreamweaver gemacht (zwecks kommentare)
                  http://www.cronon.net/~relaunch/unternehmen/unternehmen.html

                  danke.
                  eine sich die haare raufende nicole

                  1. Morgen

                    http://www.cronon.net/~relaunch/unternehmen/unternehmen.html

                    Ich schlage vor, Du korrigierst erstmal den Fehler in Zeile 86. Da fehlt ein <table>.
                    Dann mußt Du natürlich noch mit z.B.:

                    history_on = new Image();
                    history_on.src = "pfad/dateiname";

                    im Head-Breich die Objekte erzeugen. Sonst bekommst Du immer eine Fehlermeldung.
                    Woher soll der Browser denn wissen, was das Objekt "history_on" ist?
                    Außerdem solltest Du mal überprüfen, ob Du nicht etwa Namen doppelt vergeben hast. Das ist ein sehr beliebter Fehler, wenn man Imageobjekte definiert, Grafiken Namen verpaßt und dann noch für tausend Layer ID's vergibt.

                    Und schließlich:
                    Deine Funktion klappt nicht bei verschachtelten DIV's (hab jetzt nicht nachgeschaut, ob Du welche hast). Da muß es so aussehen:
                    ... document.Divname_aussen.document.Divname_innen.document.images ...

                    Thomas J.

                    1. einen wunderschönen guten morgen,

                      http://www.cronon.net/~relaunch/unternehmen/unternehmen.html

                      Ich schlage vor, Du korrigierst erstmal den Fehler in Zeile 86. Da fehlt ein <table>.

                      mh, ich muß unterschiedliche cellpaddings auslesen zwecks dem haarfeinen rahmen, steht in document writeln - ist also vorhanden

                      Dann mußt Du natürlich noch mit z.B.:

                      history_on = new Image();
                      history_on.src = "pfad/dateiname";

                      wird durch externe scriptdatei geladen -> loader.js

                      Außerdem solltest Du mal überprüfen, ob Du nicht etwa Namen doppelt vergeben hast. Das ist ein sehr beliebter Fehler, wenn man Imageobjekte definiert, Grafiken Namen verpaßt und dann noch für tausend Layer ID's vergibt.

                      bestimmt nicht. soweit bin ich schon mit meinen javascript... *g*
                      grafiken heißen wie der dargestellte text und layer wie die navi also navi_... oder unternavi_...

                      Und schließlich:
                      Deine Funktion klappt nicht bei verschachtelten DIV's (hab jetzt nicht nachgeschaut, ob Du welche hast). Da muß es so aussehen:

                      ... ich wechsel nur die sichtbarkeit der divs aus, im div steht nur ne tabelle, die die images ausrichtet...

                      übrigens, habe ich mir die seite, die du mir empfohlen hast mal angesehen, sehr informativ, nur leider!!! diese scripte funktionieren bei mir auch nicht - habe die beispielseiten aufgerufen. weder im ie noch in nn.
                      meins geht ja wenigstens noch im ie *snief*

                      ich glaub ich hab doch bald ne glatze vor lauter haare raufen

                      nicole

            2. Hallo axel!

              da war ja auch ein kleiner Fehler in den Scripten von Thomas und Burkhard (erstaulicherweise beide Male der gleiche).

              document.unternavi_unternehmen.document.images[imgName] has

              Das ist weder erstaunlich noch ein Fehler, sondern legale Javascriptsyntax.

              document.images[3].src=...
              document.images["bild_drei"].src=..
              document.bild_drei.src=...

              sind drei legale Methoden um auf ein Bild zuzugreifen.

              Gruss,
               Carsten

      2. Tach

        Versuch's mal so:

        function changeImage(layer,imgName,imgObj) {
        if (document.images) {
        if (document.layers && layer!=null) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
        else document.images[imgName].src = eval(imgObj+".src")
        }
        }

        Aufruf im body dann so:

        <DIV ID="Irgendwas" ... ><A HREF="ziel" onmouseover="changeImage('Irgendwas','Bild1','Navi1')"<IMG NAME="Bild1" SRC="...>
        </A></DIV>

        Das ImgObj (hier Navi1) mußt Du vorher natürlich noch mit

        Navi1 = new Image();
        Navi1.src = "pfad/dateiname"

        im Head-Bereich erzeugen.

        Sollte sowohl mit Netscape 4.x als auch IE funzen.

        Thomas J.

        1. Tach

          Versuch's mal so:

          function changeImage(layer,imgName,imgObj) {
          if (document.images) {
          if (document.layers && layer!=null) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
          else document.images[imgName].src = eval(imgObj+".src")
          }
          }

          Aufruf im body dann so:

          <DIV ID="Irgendwas" ... ><A HREF="ziel" onmouseover="changeImage('Irgendwas','Bild1','Navi1')"<IMG NAME="Bild1" SRC="...>
          </A></DIV>

          Das ImgObj (hier Navi1) mußt Du vorher natürlich noch mit

          Navi1 = new Image();
          Navi1.src = "pfad/dateiname"

          im Head-Bereich erzeugen.

          Sollte sowohl mit Netscape 4.x als auch IE funzen.

          Thomas J.

          _____________________________-

          supi.

          du bist meine rettung.

          ich danke dir vielmals und wünsche dir ein schönes we

  2. Hallo Nicole

    if(browser = "Netscape 4.0")

    == nicht =

    grüße
    axel

    1. Hallo Nicole

      if(browser = "Netscape 4.0")

      == nicht =

      grüße
      axel

      _____________---

      danke für die prompte antwort.

      ich habe es auch woanders versucht (vor 3 tagen und noch keine antwort) *g*

      meinst du, das dann das ansprechen der grafik funktioniert?
      er hat nämlich immer die fehlermeldung gebracht, daß image.Name nicht gefunden werden kann...

      nicole