Dominik: und NETSCAPE V6: Script läuft nicht

Beitrag lesen

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