Homepage läuft nur offline
Lars
- javascript
0 Daniel Thoma0 Lars
0 code2i
Hallo zusammen.
Ich habe ein Problem mit der Online-Tauglichkeit meiner Homepage:
So sollte es laufen - tuts auch, aber halt nur offline!
Auf meiner Hauptseite steht eine Bildergalerie. Beim Anklicken der Bilder soll sich immer das gleiche neue Fenster öffnen:
<a href="Javascript:Funktion oefFenst()"><img ..Bild...
Das neue Fenster besteht aus 2 Frames.
Der Funktion oefFenst übergebe ich best. Parameter, die mir den Inhalt der Frames des neuen Fensters dynamisch je nach angeklicktem Bild ändern.
D.h. im neuen aber immer gleichen Fenster, wird unterschiedlicher Inhalt angezeigt.
oefFenst ruft in sich
1.eine "variable=open(...)" Funktion auf, so dass das neue Fenster geöffnet wird(variable referrenziert mein neues Fenster)
2.folgende Befehle auf:
var help = variable.frames[1];
help.document.all.tags("font")[13].innerHTML = .....
(Damit soll der Inhalt des rechten Frames(eine html-Seite mit vielen font-Elementen) neu gesetzt werden)
Meine Skriptbefehle habe ich in eine externe .js Datei ausgelagert.
So weit so gut. Geh ich damit nun online und klicke auf ein Bild öffnet sich zwar das neue Fenster, aber mein Inhalt wird nicht neu gesetzt. Zusätzlich erscheint die Meldung, dass help.document.all.tags..... kein Objekt sei. Schließe ich nun das neue Fenster und gehe offline und klicke dann erneut das gleiche Bild wieder an, erscheint plötzlich mein neu gesetzter Inhalt ohne Fehlermeldung.
Irgendwie sind also online best. Daten nicht verfügbar oder blockieren sich gegenseitig.
Wer kann helfen?
danke
Hallo Lars
An Hand deiner Codeausschnitte kann man nicht auf die Fehlerursache schließen. (ich zumindest nicht ;-)
Kannst Di vieleicht eine URL angeben?
Ansonsten: Typische Fehler, die verhindern, dass eine Seite online funktioniert sind:
Grüße
Daniel
Hallo Lars
An Hand deiner Codeausschnitte kann man nicht auf die Fehlerursache schließen. (ich zumindest nicht ;-)
Kannst Di vieleicht eine URL angeben?
Ansonsten: Typische Fehler, die verhindern, dass eine Seite online funktioniert sind:
- Urls mit file://
- Andere Groß- und Kleinschreibung bei den Dateinamen als bei den Links. (bei Unix/Linux sind Pfade casesensitiv)
URL anbei!
Meine Hauptseite ist die rusland_0808.html,
die Script-Datei die script.js.
Die "typischen" Fehler hab ich schon überprüft. Da gibt es leider nichts zu holen.
Grüße, Lars
Hallo Lars
Ich hab' mir die Seite angesehen und mal versucht da durch zu Steigen. Aber 1. scheint das alles für den IE geschrieben zu sein und das habe ich hier gerade keinen und 2. ist es ein ziemliches Chaos. So gibt es eine script.js und script.html mit identischem Inhalt, die Du beide als JS-Datei einbindest.
Außerdem enthalten die Dateien Kommentare in der Form <!-- -->
Das sind keine JS-Kommentare und innerhalb von JS-Dateien somit falsch. Du musst //commentar bzw /* commentar */ verwenden.
Warum das onlin nun nicht tut, kann ich Dir (mangels IE) nicht sagen, aber ich würde Dir raten, das alles noch mal sauber zu strukturieren und die Ungereimtheiten zu beseitigen. Dann gestaltet sich die Fehlersuche wesentlich einfacher.
Grüße
Daniel
moin !
Der Funktion oefFenst übergebe ich best. Parameter, die mir den Inhalt der Frames des neuen Fensters dynamisch je nach angeklicktem Bild ändern.
D.h. im neuen aber immer gleichen Fenster, wird unterschiedlicher Inhalt angezeigt.
oefFenst ruft in sich
1.eine "variable=open(...)" Funktion auf, so dass das neue Fenster geöffnet wird(variable referrenziert mein neues Fenster)
2.folgende Befehle auf:
var help = variable.frames[1];
help.document.all.tags("font")[13].innerHTML = .....
(Damit soll der Inhalt des rechten Frames(eine html-Seite mit vielen font-Elementen) neu gesetzt werden)
So weit so gut. Geh ich damit nun online und klicke auf ein Bild öffnet sich zwar das neue Fenster, aber mein Inhalt wird nicht neu gesetzt. Zusätzlich erscheint die Meldung, dass help.document.all.tags..... kein Objekt sei.
Hmmm das Problem liegt wohl im Programmfluss!
Bei derartigen Scripts, bei denen dokumentübergreifend gearbeitet wird muss man dringend darauf achten, was Zeile für Zeile im Script passiert und auf welche Elemente zugegriffen wird.
Einfacher ! Es kann passieren das auf ein Element zugegriffen wird, welches noch gar nicht existiert!
Irgendwie sind also online best. Daten nicht verfügbar oder
In deinem Fall muss noch ein anderer Parameter beachtet werden. Die Zeit die vergeht bis das Dokument auf deinem lokalem Rechner zur Verfügung steht.(also verfügbar ist)
Im Offline Modus kann es allerdings auch zu Problemen kommen. Den entscheident ist wer schneller ist. Der JavaScript Interpreter oder der Dateizugriff.
"help.document.all.tags ... ist kein Objekt",könnte also bedeuten das dieses Objekt zum Zeitpunkt des Aufrufes noch gar nicht vorhanden ist.
Das könnte durch ein setTimeout() gelöst werden,indem die entsprechende Funktion erst verzögert ausgelöst wird.Das ist aber die unelegantere Methode, den der Zugriff auf das neue Dokument kann bei jedem User eine andere Zeitspanne einehmen.
Es geht ja auch nur darum, das diese Funktion erst aufgerufen werden soll wenn das entsprechende Objekt, welches bearbeitet werden soll, auch zur Verfügung steht.
Das geht am besten mit einem onload() Event. Je nach dem bei welchem Element das onload() Event notiert wird, wird das Event erst ausgelöst wenn es auch zur Verfügung steht.... das ist am sichersten.
(man kann das onload() Event auch für einen Frame definieren, dann wird es erst ausgelöst wenn der komplette Frame geladen wurde incl. aller Elemente)
Lösung !
Objekt ---> onload(halloichbindaundkannjetztbearbeitetwerden());
cu