Allan Allcock: und NETSCAPE V6: Script läuft nicht

Hallo Forum!

bei der folgenden Seite:
www.yamaichi.de   http://www.yamaichi.de/
funktioniert alles unter MSIE und Netscape 4

Mit Netscape 6 funktionieren die Mouseovers weder
a) oben bei den roten Texten: "News", "Company", "Sales" usw.
noch
b) bei den Texten mitten auf der Einstiegsseite "Test and Burn-in Sockets", "Production Use Sockets" usw.

Leider reichen meine Kenntnisse von Javascript nicht aus, um festzustellen warum. (Die Seite stammt nicht von mir.) Kann jemand mir einen Tipp geben?

Danke im Voraus

Allan Allcock

  1. hi

    Leider reichen meine Kenntnisse von Javascript nicht aus, um festzustellen warum. (Die Seite stammt nicht von mir.) Kann jemand mir einen Tipp geben?

    die javascript kenntnisse der meisten leute reichen leider nicht aus um die seltsamen scripte die macromedieas dreamweaver oder fireworks produzieren zu verstehen.

    <auf-dünnem-eis-bewegen>

    ich kann nur raten, da ich die sache auch nicht verstehe ;).

    meistens wird (bei ältern scripten) zwischen document.layer (für netscape 4) und docuemnt.all (für IE) unterschieden.
    vernachlässigt wird aber das DOM, das afaik der NN6 (und die IE ab 5 glaub ich) verstehen.
    der NN6 versteht hingegen afaik weder document.layer noch document.all (mehr dazu gibts aber im archiv).

    vieleicht liegt der fehler da :)

    </auf-dünnem-eis-bewegen>

    so long
    ole
    (8-)>

    --
    Die Summe aller menschlichen Intelligenz ist eine Konstante.
    Das Problem ist das Bevölkerungswachtum...
    sh:( fo:) ch:| rl:° br:& n4:° ie:% mo:} va:| de:] zu:| fl:( ss:) ls: js:|
    If you can't beat 'em...eat 'em !
    1. Hi Ole,

      Danke für den Tipp - das hilft mir weiter - ich suche in diese Richtung.

      Bye

      Allan Allcock

      1. Hallo Allan,

        Also mit meinem Mozilla 1.1 geht bei der roten Menüleiste kein Mouseover und auch das Menü selbst funktioniert nicht.

        Bei den Unterpunkten (Test und Burn-in Sockets usw.) wird die Farbe geändert und der Strich verlängert. Denke mal das ist das Mouseover. Allerdings funktionieren diese Menüpunkte auch nicht.

        Lediglich das "Hilfsmenü" mit dem Auswahlfeld (Global Navigation geht.)

        Die Ladezeit ist selbst mit DSL seeeeeehr groß. Da solltest Du unbedingt nachbessern.

        Konkrete Tips zu den JavaScripts kann ich Dir leider auch nicht geben Macromedia ist da für mich einfach zu schwer zu durchschauen.

        Grüße aus Nürnberg,
        HarryS

        --
        Dank des SELFcodes weiß ich endlich was ich als Signatur nehmen soll.
        sh:( fo:) ch:? rl:? br:> n4:° ie% mo:) va| de:> zu:| fl:( ss:{ ls:# js:|
        1. Hallo HarryS

          Danke für die Infos, was geht/was nicht geht.

          Die Ladezeit ist selbst mit DSL seeeeeehr groß. Da solltest Du unbedingt nachbessern.

          Mache ich - Danke für den Tipp

          Bye

          Allan

  2. Hallo Allan,

    also mit IE6 geht es.
    Ist dir eigentlich mal aufgefallen, was die Grafik rechts oben "wiegt"?
    Immerhin 1,44 MB... tsts... das nur mal so nebenbei.

    Gruß
    Igor

    1. Hallo Igor,

      also mit IE6 geht es.

      Ja! Mit keinen Versionen von MSIE habe ich Probleme - nur mit NETSCAPE 6 (Netscape 7 weiss ich nicht)

      Ist dir eigentlich mal aufgefallen, was die Grafik rechts oben "wiegt"?

      Nein - daher Danke für den Hinweis!

      Bye

      Allan

  3. Hallo

    ich habe ein Script, das solche Probleme beseitigen soll, geschrieben:

    var idDOM=0;
    var allDOM=0;
    var layDOM=0;
    var DHTML=0;

    if (document.getElementByID) {
     idDOM=1;
     DHTML=1;
    } else {
     if (document.all) {
      allDOM=1;
      DHTML=1;
     } else {
      browserVersion=parseInt(navigator.app-Version);
      if ((navigator.appName.indexOf('Netscape')!=1) && (browserVersion==4)) {
       layDOM=1;
       DHTML=1;
      }
     }
    }

    function crossDOM(Stil,ObjID) {
     if (idDOM) {
      if (Stil==1) {
       return (document.getElementByID(ObjID).style);
      } else {
       return (document.getElementByID(ObjID));
      }
     }
     if (allDOM) {
      if (Stil==1) {
       return (document.all[ObjID].style);
      } else {
       return (document.all[ObjID]);
      }
     } else {
      if (layDOM) {
       return (document.layers[ObjID]);
      }
     }
    }

    Am besten bindest du es als externes Script ein.
    In Deiner Javascript-Funktion rufst du es dann so ab, um z.B. die höhe eines Objektes festzustellen

    function objHeight(ObjID) {
     dom=crossDOM(0,ObjID);
     if (dom.offsetHeight) {
      return dom.offsetHeight;
     }
     if (layDOM) {
      return dom.clip.height;
     } else {
      return (0);
     }
    }

    Ich hoffe das hilft Dir weiter

    Gruß

    Ralf

    1. Hallo Ralf,

      Wow!

      Dass das meine (momentane) Kenntnisse weit überschreitet, dürfte klar sein. Nichtsdestotrotz glaube ich schon, dass ich kapiere, wie ich es anwenden soll.

      Vielen Dank!

      Kuck mal in 6 Monaten auf der Seite vorbei, um zu schauen, ob ich es geschafft habe, es einzubauen.  ;-)

      Grüße

      Allan

  4. Hallo Forum!

    Leider reichen meine Kenntnisse von Javascript nicht aus, um festzustellen warum. (Die Seite stammt nicht von mir.) Kann jemand mir einen Tipp geben?

    Am besten du benutzt eine aktuelle Version des Macromedia Tools - das sollte dann Code erzeugen welcher mit den meisten Browsern klappt.
    Dies dürfte die einfachste Möglichkeit sein - man braucht nur klicken und nichts "programmieren".

    Es selbst im Quelltext zu ändern ist aber eigentlich auch extrem simpel. Einfach die Funktion:

    function MM_findObj(n, d) { //v3.0

    Durch eine neuere Version ersetzen, welche man auf tausenden Seiten findet. Einfach mit Google nach function MM_findObj suchen und man findet z.B. diese hier:

    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    Der Rest des Skripts kann wahrscheinlich so bleiben wie er ist, evtl. sind noch an 2-3 Stellen kleinere Änderungen nötig.

    WICHTIGE HINWEISE:
    In dem Spagghetticode der Seite ist vieles Javascript doppelt enthalten - in der Hauptseite (default.html) und in der datei /scripts/o16menu.js.
    Die Funktion function MM_findObj in der o.g. Datei muss natürlich gegen die neue ausgetauscht werden. Außerdem solltest du dann diese und weitere doppelte Funtionen aus der HTML Datei entfernen um Ladezeit zu sparen, es reicht wenn sie einmal in der js Datei sind.

    Dominik

    1. Hallo Dominik

      Danke für die fachkundige Antwort.

      Bin ich froh, dass ich das nicht verstehen soll, sondern nur nutzen muss!

      Grüße

      Allan

      1. Hallo Dominik

        Danke für die fachkundige Antwort.

        Bin ich froh, dass ich das nicht verstehen soll, sondern nur nutzen muss!

        Bitte.
        Wie gesagt könnten noch an einigen anderen Stellen Änderungen nötig sein damit es zu 100% klappt; und dazu sind Javaskript Kenntnisse nötig.
        Allerdings - soviel Zeit habe ich auch wieder nicht.

        Noch etwas ist mir gerade eingefallen: Ich bin mir nicht ganz sicher ob man die neue Version von dem Skript einfach so nutzen darf, wenn man das entsprechende Macromedia Programm nicht hat.
        Allerdings könnten sie das sowiso nicht nachprüfen und beweisen...
        Außerdem denke ich dass ein - eigentlich trivialer - 6 Zeiler nicht als ein kreatives Werk eingestuft werden kann und somit gar nicht unter das Copyright fällt.
        Wie sehen dass denn die anderen hier im Forum?

        Dominik

        1. Jo :-) !

          Außerdem denke ich dass ein - eigentlich trivialer - 6 Zeiler nicht als ein kreatives Werk eingestuft werden kann und somit gar nicht unter das Copyright fällt.
          Wie sehen dass denn die anderen hier im Forum?

          Ähm... ich glaube: Ein Bißchen Schwanger ist auch schon schwanger. Deswegen kann man nicht sagen, dass nur eine oder wie hier, sechs Zeilen geklautem Code keine Piraterie sind.

          Aber wenn man das so sieht, dann darf man sich ja sowieso nichts anschauen und anhören, denn ein Webdesigner ist nur dann ein GUTER Webdesigner, wenn er etwas besseres herausbringt als die Anderen.
          Dafür vergleicht dieser die "Konkurenzseiten" macht sich Gedanken, was ihm gefallen oder mißfallen hat und kreirt dann sein eigenes Werk.

          Da ich mit Musik viel zu tun habe und selbst auch komponiere, kann ich dir eins sagen - NUR durch Kopieren von Styles der anderen (auch berühmter Komponisten) und durch Ausprobieren von diesen kommst du auf eigene, vielleicht bessere. Sprich, man muß sich von etwas insperieren lassen. Und oft findet man in einem oder anderen Stück, hier Webseite die Ideen von jemand anderem, die einem selbst gefallen hatten.

          So seh ich das :-)

          Gruß
          SeKo

          1. Hallo,

            Da ich mit Musik viel zu tun habe und selbst auch komponiere, kann ich dir eins sagen - NUR durch Kopieren von Styles der anderen (auch berühmter Komponisten) und durch Ausprobieren von diesen kommst du auf eigene, vielleicht bessere. Sprich, man muß sich von etwas insperieren lassen. Und oft findet man in einem oder anderen Stück, hier Webseite die Ideen von jemand anderem, die einem selbst gefallen hatten.

            nur in diesem Fall geht es ja um nichts Kreatives. Es geht um ein winziges Fetzchen automatisch generierten Skriptcode, welcher auf 10000den von Seiten zu finden ist. Dieser Code wird benötigt, damit eine bestehende Seite mit allen modernen Browsern funktioniert. D.h. es geht nicht um Inhalt, Layout oder Gestaltung - um nichts künstlerisches.
            Die Seite sieht mit dem Code genau so aus wie vorher, nur dass sie dann (höchstwarscheinlich) mit allen modernen Browsern klappen wird.
            Außerdem enthält der Code keine ausgefeilten Algorithmen, sondern ist klein und trivial.

            Ich glaube wie gesagt nicht dass das unter das Copyright fällt. Außerdem könnte Allan ja im Besitz einer neueren Version des Macromedia (wie heißt das teil noch mal??) sein - dann wäre es auf jeden Fall legal. Niemand kann das Gegenteil beweisen, also ist das ganze sowiso nur eine akademische Frage :-)

            Dominik

            1. Hi Dominik :-)

              Ich glaube wie gesagt nicht dass das unter das Copyright fällt. Außerdem könnte...nur eine akademische Frage :-)

              Ich sag nur: Pfeif drauf :-)
              Und wenn es denen nicht gefällt, dann cracken wir deren Server, gelle :-) haha

              Alles Gute
              SeKo

              1. Hallo,

                Ich sag nur: Pfeif drauf :-)
                Und wenn es denen nicht gefällt, dann cracken wir deren Server, gelle :-) haha

                ???
                ich meinte dass durchaus ernst. Leider hast du meine Antwort ja sinnentstellt zitiert, was ich nicht so schön finde.

                Da du davon ja offensichtlich keine Ahnung hast, Google doch mal nach
                Urheberrecht Schöpfungshöhe.

                Dominik

            2. Hallo Dominik,

              Ich glaube wie gesagt nicht dass das unter das Copyright fällt.

              Beim Deutschen Urheberrecht nehme ich das auch an, (aus den von Dir genannten Gründen) allerdings habe ich keine Ahnung vom amerikanischen und ob es in diesem auch eine erforderliche Schöpfungshöhe gibt oder nicht oder wie diese eventuell definiert ist.

              Viele Grüße,
              Christian