Navigation mit Javascript geht nicht in Firefox

ronaldo84

Erfahrenes Mitglied
Hallo
Ich habe eine Problem. Ich habe eine Homepage die aus drei Frames besteht. Kopf, links und rechts. In dem rechten wird der Inhalt wiedergegeben und in dem Linken sollte eigentlich die Navi stehen. Im IE funtkioniert das auch. Nur sobald die Seite im Firefox geöffnet wird wird das Kopfframe und das mit dem Inhalt angezeigt. Nur die Navigation wird nicht angezeigt. Zudem steht in der JavaScript-Konsole des Firefoxes der Fehler "obj has no porperties" in der Zeile
Code:
this.document = obj.document;
in der Funktion
Code:
function divObject(obj) { 
this.style = obj; 
this.document = obj.document;
Der Funktionsaufruf ist
Code:
e.divObj = new divObject(self.menu.document[divName]);
und in diversen anderen. Aber ich denke wenn mir jemand erklären kann warum dort der Fehler ist werde ich die anderen Zeilen anpassen können.
Die Navigation hat eine Html-datei als Hintergrund. Bei Firexfox wird dann nur die HTML-Seite angeziegt. kann das damit zusammenhängen? Ich hbae da was in einem Thread gelesen das Firefox anderes mit Frames abreitet als der IE. Wüßte nur nicht wie ich das umsetzetn könnte.
Ich habe die Suche genutzt und mir auch die Tutorials für eine Navigation angeschaut. Aber leider ist diese Navigation anders aufgebaut. Habe auch von Javascript keine Ahnung. Habe die Navigation nicht selbst geschrieben. Wenn mehr Quelltext oder etwas anderes gebraucht wird poste ich es einfach.
Danke für die Mühe
 
Kannst du mir sagen was du genau mit ansprechen meinst? Verstehe ich nicht so ganz. Was klar ist:

In der Navigation wird eine neues Objekt vom Typ divObjekt erstellt. Mit dem Wert self.menu.document[divName].
Code:
 function divObject(obj) {
this.style = obj;
this.document = obj.document;}
und divName ist dabei
Code:
var divName = 'entryDIV' + curEntry;

Weiter oben steht das currEntry =0 ist.

Habe versucht mich ein wenig in bei http://de.selfhtml.org/javascript/index.htm weiterzubilden. Hat auch einigermaßen geklappt (hoffe ich). Habe das jetzt soweit verstanden das style und document methoden bzw. unterobjekte sind. Und bei this gehe ich mal davon aus immer das Gerade aktuelle Element ist oder? Wenn ich jetzt weiterdenek würde ich sagen der Fehler kommt weil currEntry= 0 ist und ich praktisch versuche ein Objekt mit 0 zu erstellen. Aber das wird doch durch 'entryDIV' verhindert oder? Die ' bei entrydiv stehen doch dafür das dies ein fester Wert ist oder? Danke
 
okay. Ich habe die Zeile

Code:
 i = navigator.userAgent.indexOf('Mozilla/')
if (i >= 0) {
this.code = 'NS/';	
this.version = parseFloat(navigator.userAgent.substring(i+8, i+12)); 
}
jetzt in
Code:
 this.code = 'Gecko/';
geändert. Jetzt wird das Menu wenigsten schon gezeichnet. Aber es ist an der faslchen Stelle und es geht nicht die Ordner aufzuklappen (Treemenu). Für die Position der Navigation ist eigentlich ein menuTop von 40 angegeben. Dies scheint vom Firefox vollkommen ignoriert zu werden. Die Dokumente die nicht in Ordnern sind funktionieren auch. Unten sind noch zwei Buttons die alle Unterpunkt öffnen und schliessen. Die funktionieren auch nicht richtig. Wenn ich die Seite lade muss ich erst alle schliessen, damit ich alle öffenen kann. Bin noch weiter dran, aber wenn mir jemand einen Tip geben kann bin ich sehr dankbar.
 
Zuletzt bearbeitet:
Ist die Sache irgendwo online? Mit einen paar Codefragmenten lässt sich leider überhaupt nichts sagen, da man nicht weiss, wozu sie gut sein sollen.

Aber es ist an der faslchen Stelle und es geht nicht die Ordner aufzuklappen (Treemenu).

Bei den Tutorials findest du ein Treemenu, welches funktioniert.
 
Das Tutorial habe ich mir auch schon durchgelesen. Aber soweit wie ich da durchblicke ist die Navigation auf der Seite vollkommen anders aufgebaut als das in dem Tutorial. Hier findest du es online . Ist eigentlich nur das Grundgerüst mit der Navi. Die Navigation ist ja wie bekannt nicht von mir. Aber anscheinend hat derjenige die Navi auch von einem dritten bekommen. Bin bis jetzt noch nicht weiter.
Danke
 
Stimmt schon, sie ist anders aufgebaut, allerdings nicht gerade einfacher, und bei deaktiviertem JS geht überhaupt nichts mehr.

Das Treemenu aus dem Tutorial gewährleistet die Navigation auch ohne JS, und kommt obendrein ohne Frames aus.
Die Änderungen gegenüber der bisherigen Navigation sind nicht wirklich weltbewegend.
Folgender Code z.B. ist vonnöten, um dein aktuelles Menu mit dem Tutorial-Menu nachzustellen:
Code:
<div id="menu"><a href="#">Home</a>
    <ul>
        <li><a href="#">Aktuelles</a></li>
        <li><a href="#">Produkte</a>
            <ul>
                <li><a href="#" >Allgemein</a>
                    <ul>
                        <li><a href="#" >Seite1</a></li>
                        <li><a href="#" > Seite2</a></li>
                    </ul>
                </li>
                <li><a href="#" >Sonstiges</a>
                    <ul>
                        <li><a href="#" >Sonst1</a></li>
                        <li><a href="#" >Sonst2</a></li>
                    </ul>
                </li>
                <li><a href="#" >Extras</a>
                    <ul>
                        <li><a href="#" >Extras1</a></li>
                        <li><a href="#" >Extras2</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><a href="#">Sportliche Aktivitäten</a></li>
        <li><a href="#">Kontakt</a></li>
    </ul>
</div>
....siehe http://doktormolle.de/treemenu/ronaldo.htm

Und um Google nicht zu vergessen.... bei deinem aktuellen Menu versperrst du Google komplett den Zugang zu den einzelnen Linkzielen.
 
Das es nichts weltbewegendes ist habe ich mir schon Gedacht. Aber was mir an dem Menü nicht gefallen hat ist das man die Unterordner nur mit dem "+" bzw. "-" Zeichen aufklappen kann und nicht wenn man einfach nur auf den Namen klickt.
Soweit ich das Tutorial verstanden habe kann man das auch nicht ändern, da dort ja nur HTML Code stand. So meine ich stand es zumindest im Tutorial. Kriege es nicht mehr ganz zusammen. Oder weißt du da vielleicht was anderes?
Das mit dem JavaScript ist natürlcih auch wichtig. Hmm muss ich mir mal überlegen.
DIe Frames wollte ich eigentlich behalten. Aber das dürfte ja kein Problem sein. Auf jeden Fall besten Dank das du dir die Mühe gemacht hast.
 
Zuletzt bearbeitet:
Wenn du in einem solchen Name(Link)
Code:
onclick="expand(this.parentNode)"
notierst, dann öffnet sich der Baum auch, wenn man auf den Text klickt.
 
Erstmal vielen Dank für deine Hilfe. Das hat mir bis jetzt sehr weitergeholfen. Nun habe ich nur noch eine Frage. Wenn ich jetzt auf einen Ordner klicke fungiert er ja auch als Hyperlink. Das möchte ich aber nicht. Ich möchte das der Ordner nur auf- und zugeklappt wird. Das geht auch wenn ich das href einfach weglasse. Dann verändert der Mauszeige aber nicht mehr seine Gestalt wie er es normalerweise bei einem Hyperlink tut. Das würde ich jetzt einfach mit einem Onmouseover und dann die Grafik austauschen. Geht das? Gibt es da einen "eleganteren" Weg?
Desweitern wenn ich jetzt auf einen Punkt in der Navigation klicke wird die gesamte Seite ja aktualisiert. Ich würde es aber gerne so haben das halt nur der Recht Fram mit dem Inhalt aktualisiert wird. Hoffe ich habe mich verständlich ausgedrückt. Nochmal Danke, Danke, Danke für deine bisherige Hilfe.
Danke
 
Zuletzt bearbeitet:
Zurück