Humusbäär: script funktioniert mit IE+NN6 aber nich mit NN4!

HAllo!
Ich hab hier nen script das nen Button als "Active" setzt! Funktioniert auch einwandfrei ausser im NN4!!!
Selbst wenn ich anstatt document -->> document.layername schreib funktioniert es nich! ;/
Wäre super lieb wenn mir jemand helfen könnte!
THX schonmal im Voraus!
greetz|Humusbäär

<script language="JavaScript">
var bildzahl = 2;
var aktuell;
function wechsel(bildname,aktbild,zustand){
//alert ('zustand:' + zustand + ' bild:' + aktbild);
 if (zustand=='over') {
    var schaltbild = bildname + aktbild;
    document[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
  }
  if (zustand=='out') {
   var schaltbild = bildname + aktbild;
  if (aktbild != aktuell){
    document[schaltbild].src =bildname+"_aus.gif";  /*Zustand nach OnMouseOut*/
  }
  }
  if (zustand=='click') {
  aktuell = aktbild;
     for (i=1;i<=bildzahl;i++) {
    schaltbild = bildname + i;
   if (i == aktbild) {
//      alert('schalte an : ' + schaltbild);
         document[schaltbild].src =bildname+"_an.gif";      /*Zustand nach OnClick*/
      }else{
//  alert(' AUS: ' + schaltbild);
         document[schaltbild].src =bildname+"_aus.gif";
  }
    } // for i ==
  }
 return true;
} // ende gesamtfunction
</script>

  1. Moin!

    Ich hab hier nen script das nen Button als "Active" setzt! Funktioniert auch einwandfrei ausser im NN4!!!
    Selbst wenn ich anstatt document -->> document.layername schreib funktioniert es nich! ;/

    Zugriff auf Bilder erfolgt über document.images["bildname"]. Wenn das Bild in einem Layer enthalten ist und Netscape 4 verwendet wird, dann über document.layers["layername"].document.images["bildname"]. Wenn tiefere Verschachtelungen vorhanden sind, möglicherweise mit noch mehr document.layers["layername"] davor.

    Wäre super lieb wenn mir jemand helfen könnte!

    Man kann dir nur helfen, wenn du auch den HTML-Code des Bildes genauer angibst.

    if (zustand=='over') {
        var schaltbild = bildname + aktbild;
        document[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/

    Was ist denn das hier für ein Zugriff? Scheint mir irgendwie falsch zu sein. Kommt später noch häufiger vor.

    }

    - Sven Rautenberg

    1. Hallo Sven

      Drängelst Du dich einfach vor - gar nicht nett finde ich das ;-)

      if (zustand=='over') {
          var schaltbild = bildname + aktbild;
          document[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
      Was ist denn das hier für ein Zugriff? Scheint mir irgendwie falsch zu sein. Kommt später noch häufiger vor.
        }

      Nein, ist richtig.
      In JS is objekt.property gleichbedeutend mit objekt["property"];

      Nettes Beispiel:
      alert(window["location"]["href"]);

      Tut zu mindest im Mozilla, sollte aber auch im IE tun.
      Wie konsequent der NN4 das allerdings umsetzt, weiß ich nicht.

      Grüße

      Daniel

      1. Also erstmal THX für eure schnellen Antworten!

        Also entweder macht mir heute die Hitze zu arg zu schaffen oder sonstwas :) aber es läuft nich ;/

        Ich geb euch hier mal den ganzen code:
        Die Seite is teil eines Framesets:

        <HTML><HEAD><TITLE>Untitled Document</TITLE>
        <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
        <META content="MSHTML 5.50.4522.1800" name=GENERATOR>

        <script language="JavaScript">
        var bildzahl = 2;
        var aktuell;
        function wechsel(bildname,aktbild,zustand){
        //alert ('zustand:' + zustand + ' bild:' + aktbild);
         if (zustand=='over') {
            var schaltbild = bildname + aktbild;
            document.layers[naviv].document.images[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
          }
          if (zustand=='out') {
           var schaltbild = bildname + aktbild;
          if (aktbild != aktuell){
            document.layers[naviv].document.images[schaltbild].src =bildname+"_aus.gif";  /*Zustand nach OnMouseOut*/
          }
          }
          if (zustand=='click') {
          aktuell = aktbild;
             for (i=1;i<=bildzahl;i++) {
            schaltbild = bildname + i;
           if (i == aktbild) {
        //      alert('schalte an : ' + schaltbild);
                 document.layers[naviv].document.images[schaltbild].src =bildname+"_an.gif";      /*Zustand nach OnClick*/
              }else{
        //  alert(' AUS: ' + schaltbild);
                 document.layers[naviv].document.images[schaltbild].src =bildname+"_aus.gif";
          }
            } // for i ==
          }
         return true;
        } // ende gesamtfunction
        </script>

        </HEAD

        <BODY background="rightFrame-Dateien/rightframedhgr.jpg">

        <DIV id=Layer1
        style="Z-INDEX: 1; LEFT: 0px; WIDTH: 35px; POSITION: absolute; TOP: -2px; HEIGHT: 45px"><IMG
        height=623 src="rightFrame-Dateien/test.jpg" width=220></DIV>
        <div id="Layer2" style="position:absolute; left:75px; top:294px; width:79px; height:54px; z-index:2">

        <p><a href="http://www.google.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild1" width="19" height="18" border="0" id="bild1"
        onMouseOver="wechsel('bild','1','over')" onMouseOut="wechsel('bild','1','out')"
        onClick="wechsel('bild','1','click')"></a>

        <p><a href="http://www.twchno-galaxy.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild2"
        width="19" height="18" border="0" id="bild2" onMouseOver="wechsel('bild','2','over')" onMouseOut="wechsel('bild','2','out')"
        onClick="wechsel('bild','2','click')"></a>

        <p><a href="http://www.kotzen.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild3" width="19"
        height="18" border="0" id="bild3"></a>
          <p> </p>
        </div>
        </BODY></HTML>

  2. Hallo Humusbäär

    Dein Script erschließt sich mir jetzt beim ersten Durchlesen und ohne Kontext nicht ganz, aber die Logik scheint ja zu stimmen.

    Anscheinend befinden sich die Bilder innerhalb eines Layers.
    Dann musst Du die im NN4 so ansprechen:

    document.layername.document["bildname"]

    eventuell .images["bildname"] da bin ich mir nicht mehr ganz sicher.

    Wichtig ist jedenfalls das 2. document. NN4 betrachtet den Inhalt von Layern wiederum als Dokument.

    Grüße

    Daniel

  3. Tag auch

    Also jetzt schlägt's 13 (in Worten: dreizehn - nicht zu verwechseln mit drei Zehen).

    Du hast es also geschafft, nach meinem Hinweis von letzter Woche, das script aus http://www.selfhtml.org/sfausles/tsfa_tcg.htm#a4 zu kopieren und auf Deine Bedürfnisse umzuschreiben.
    Respekt!

    Hast Du danach Dein Gehirn ausgeschaltet? Oder wie ist es sonst zu erklären, daß Du den unmißverständlichen Hinweis unter dem Beispiel übersehen hast?

    Zitat von dieser Seite:

    "Hinweis:

    Befinden sich Ihre Buttons in absolut positionierten Bereichen, so werden im Netscape Navigator ab der Version 4 die Bilder mit document.Layername.document.Bildname angesprochen. Lesen Sie hierzu auch den SELFHTML-Abschnitt  layers - document und die Forum-Auslesebeiträge  Positionierung von dynamischen grafischen Buttons und  Referenzierung von Bildern in <div>-Umgebungen, Netscape vs. IE."

    So, und nun machst Du Dich selbst auf die Socken und suchst eine Lösung.

    Thomas J.
    not amused

    1. Sorry ja das hatte ich ja auch gelesen!
      Deswegen hatte ich auch im ersten Beitrag gleich geschrieben das es trotz document.layername.document nich funktionieren tut!

      In der Zwischenzeit hab ich echt alle möglichen kombinationen durch und weiss wirklich nicht mehr weiter! ;/

      Wäre trotzdem sehr lieb wenn ihr mir noch helfen könntet!
      Is nich so das ich n fauler sack bin und hier andere leute für mich schaffen lassen will!

      Ich geb mal nochmal den Code mit in der Hoffnung das mir jemand helfen kann:

      <HTML><HEAD><TITLE>Untitled Document</TITLE>
      <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
      <META content="MSHTML 5.50.4522.1800" name=GENERATOR>

      <script language="JavaScript">
      var bildzahl = 2;
      var aktuell;
      function wechsel(bildname,aktbild,zustand){
      //alert ('zustand:' + zustand + ' bild:' + aktbild);
       if (zustand=='over') {
          var schaltbild = bildname + aktbild;
          document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
        }
        if (zustand=='out') {
         var schaltbild = bildname + aktbild;
        if (aktbild != aktuell){
          document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_aus.gif";  /*Zustand nach OnMouseOut*/
        }
        }
        if (zustand=='click') {
        aktuell = aktbild;
           for (i=1;i<=bildzahl;i++) {
          schaltbild = bildname + i;
         if (i == aktbild) {
      //      alert('schalte an : ' + schaltbild);
               document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_an.gif";      /*Zustand nach OnClick*/
            }else{
      //  alert(' AUS: ' + schaltbild);
               document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_aus.gif";
        }
          } // for i ==
        }
       return true;
      } // ende gesamtfunction
      </script>

      </HEAD

      <BODY background="rightFrame-Dateien/rightframedhgr.jpg">

      <DIV id=Layer1
      style="Z-INDEX: 1; LEFT: 0px; WIDTH: 35px; POSITION: absolute; TOP: -2px; HEIGHT: 45px"><IMG
      height=623 src="rightFrame-Dateien/test.jpg" width=220></DIV>
      <div id="naviv" style="position:absolute; left:75px; top:294px; width:79px; height:54px; z-index:2">

      <p><a href="http://www.google.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild1" width="19" height="18" border="0" id="bild1"
      onMouseOver="wechsel('bild','1','over')" onMouseOut="wechsel('bild','1','out')"
      onClick="wechsel('bild','1','click')"></a>

      <p><a href="http://www.twchno-galaxy.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild2"
      width="19" height="18" border="0" id="bild2" onMouseOver="wechsel('bild','2','over')" onMouseOut="wechsel('bild','2','out')"
      onClick="wechsel('bild','2','click')"></a>

      <p><a href="http://www.kotzen.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild3" width="19"
      height="18" border="0" id="bild3"></a>
        <p> </p>
      </div>
      </BODY></HTML>