mypins.de: deluxe menu baustein javascript Browserabhängige Probleme

Beitrag lesen

Hallo Christoph,
vielen herzlichen Dank für die vielen, konstruktiven Hinweise. Vorweg noch ein paar allgemeine Aussagen.
Der Navigationsbaustein kommt von einem Provider (deluxe-menu.com), der diesen auch verkauft und sicherlich viele zufriedene Kunden hat. Er hebt ausdrücklich hervor, dass inwzischen das frame-übergreifende Aufklappen von Menues funktioniert. Ich nutze eine Trial-Version und würde als nicht-kommerzieller Nutzer nichts zahlen müssen.

Meine beschriebenen Problem konntest du alle nachvollziehen und hast sie genauer beschrieben - vielen Dank für die Bestätigungen.

Nun ein paar weitere Statements zu deinen speziellen Anmerkungen:
1. Ich setze die Framestruktur für das Menue ein, weil der Provider die Funktionalität anbietet
2. Eine JavaScript-Alternative ist in dieser Testphase nicht vorhanden - richtig.

Die aufgefühten navi.js sowie dmenu.js sowie der gesamte Pfad menudir sind bestandteil des Baussteins. dmenu.js ist wohl mit Absicht so formatiert, weil der Provider sich nicht in die Karten schauen lassen will.

Die weiteren Module show_det.js, extrawin... sind von mir. Inzwischen schon seit ca. 8 Jahren erfolgreich in Betrieb. Die fasse ich nicht weiter an, denn ich bin froh, dass diese laufen.

CSS und Kriegsfuss... sicherlich. Als Hobbyprogrammierer in der knappen Freizeit kann ich kein Projekt draus machen und alles sauber re-designen.

In meiner seit ca. 3 Jahren aktiven Version meiner Homepage http://www.mypins.de/ibm geht ja alles. Mein Ziel war es über den Jahreswechsel, dass Look & Feel ein wenig aufzupeppen sowie die Navigation eleganter, platzsparender sowie wartungsleichter (nutze jetzt grafische Button für die Navi) zu gestalten. Dieses Ziel habe ich leider nicht erreicht.

Zusammenfassend werde ich den Baustein wohl in den Shredder ziehen und muss neu anfangen. Nur weiss ich (noch) nicht wie. Ein horizontaler Navigationsbaum mit mehreren Unterebenen soll es schon sein. Was nehmen, wenn nicht JavaScript ?

Gruss von Manfred aus Berlin-Lichterfelde.

============================================

hallo,

nutze einen Javascript Baustein, mit dem ich mir ein horizontales Navigationsmenu konfigurieren kann.

Es sind eine ganze Reihe "Bausteine", die du benutzt. Sie alle werden von deinem oberen "Navigationsframe" bzw. der Adresse http://www.mypins.de/ibmhp_v3/frame_t.html (ich verzichte bewußt auf eine foru,sgerechte Verlinkung) aufgerufen.

Auf meiner Testseite funktioniert das im FireFox recht gut

Dann hast du nicht genug getestet. Gerade im Firefox funktioniert es eben nicht. Wenn du die Seite das erstemal aufrufst, scheint alles da zu stehen, wo du es haben möchjtest, sobald aber irgendeiner deiner Navigationspunkte angeklickt wurde, funktionieren deine Hocer-Effekte nicht mehr und die kleinen Hovermenüs verschwinden "nach oben" und werden eingekürzt, statt sich nach unten auszuklappen.

im IE 6 auch

Auch da funktioniert es _nicht_. Es passiert genau dasselbe, was dir nur im IE7 aufgefallen ist. Die aufklappenden Submenüs verschieben den darunterliegenden Frame nach unten, es entsteht "leerer Raum" in deinem oberen Navigationsframe, am deutlichsten sichtbar ist das, wenn du die Maus auf "Olympia" setzt.

aber im IE7 gibt es Probleme.

Dieselben wie in IE6.

Du siehst: deine Javascript-Bausteine machen nicht das, was du gerne haben möchtest und zwar in _allen_ Browsern (Auch Konqueror und Safari). Der Grund für die "Verschiebungen" liegt in deiner Frameset-Konstruktion. Aufklappmenüs, die zum Aufklappen eines Submenüs eben über den Rand eines Frames in den darunterliegenden Frame hineinreichen sollen, sind mit Javascript nicht möglich. Es gibt ein paar Tricksereien, die, wenn auch mit etwas Mühe, im Forumsarchiv gefunden werden können. Die Submenüs müssen eben _nicht_ im oberen Navigationsframe erscheinen, sondern in dem darunterstehenden.

Du hast also geradezu ein Paradebeispiel dafür geliefert, wie man es _nicht_ machen sollte:

  1. setzt du eine Framekonstruktion ein und erwartest, daß deine Klappmenüs über den Framerand hinausreichen können
  2. machst du deine gesamte Navigation von Javascript abhängig, ohne eine Alternative anzubieten.

Das größte Problem ist dabei gar nicht einmal dein "Konfigurationsscript" (http://www.mypins.de/ibmhp_v3/menudir/navi.js), sondern es ist das Script http://www.mypins.de/ibmhp_v3/menudir/dmenu.js. Das Ding ist gewissermaßen das "Herz" deiner gesamten Javascript-Konstruktion. Der Scriptentwickler hat dabei zu einem relativ beliebten Trick gegriffen, um es zwar benutzbar, aber nicht so lecht menschenlesbar zu machen: er hat alles hintereinander ohne einen einzigen Umbruch und ohne Leerzeichen in eine einzige ewig lange Zeile geschrieben. Das schert den Browser nicht; aber wenn du verstehen willst, was da nun konkret drinsteht, mußt du es erstmal wieder für dich lesbar machen um herauszufinden, welche Funktionen da alles drinstehen. Mir ist das zu mühsam.

Darüber hinaus gibt es noch ein kleines Script http://www.mypins.de/ibmhp_v3/pin_base/extrawin.js, das nichts anderes tut, als die Erscheinungsweise eines Popup-Fensters festzulegen, ein Script http://www.mypins.de/ibmhp_v3/pin_base/showpics.js, das deine Navigation schreibt, ein Script http://www.mypins.de/ibmhp_v3/loaddata.js, in dem alle deine 1066 möglichen "pins" aufgelistet sind und schließlich noch allerhand kleinere Scriptbereiche auf deiner Navigationsseite http://www.mypins.de/ibmhp_v3/frame_t.html. Auf dieser Seite sieht man zusätzlich, daß du Unsicherheiten im Umgang mit CSS hast. Deine Navigationsbereiche ("t0", "t1" usw.) sind allesamt absolut positioniert.

Der Support vom Bausteinprovider antwortet nicht (Weihnachten?). Ich komme nicht weiter.

Das gibt es häufiger. Der einzig sinnvolle Rat, den man dir geben kann, wird dir nicht gefallen: Verzichte auf dieses Javascript-Gewusel. Und da deine Frames eh alle untereinander stehen und es keinen linken oder rechten Rahmen gibt, sollte es dir auch leicht fallen, sie durch besser geeignete Layout-Elemente zu ersetzen.

Vermutlich hat dich dein Javascript sogar Geld gekostet. Dumm gelaufen; das hättest du dir sparen können.

Grüße aus Berlin

Christoph S.