• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

onload nur beim ersten Aufruf ausführen

Lethe

New member
Hallo, Forum

gibt es eine Möglichkeit, möglichst ohne serverseitige Programmierung, den onload-Befehl so umzustricken oder zu beeinflussen, daß er nur beim ersten Aufruf einer Seite inerhalb einer Session ausgeführt wird. Also: der User kommt auf Seite A, onload wird ausgeführt, verzweigt auf Seite B (unter derselben URL natürlich), kommt nochmal auf Seite A, onload wird nicht ausgeführt.

Thanx in advance
Lethe
 
Du könntest mit dem onload folgende Funktion aufrufen:

prüfen ob ein cookie da ist
wenn nicht deinen Befehl den Du ausführen willst ausführen
cookie setzen

wenn Du das jetzt bei der ersten Seite aufrufst, ist der cookie ja noch nicht da und der Befehl wird ausgeführt, sobald der aber ausgeführt wird wird auch ein cookie gesetzt, der bei der der nächsten Seite ein Ausführen des Befehles verhindert.
 
der vorschlag ist ein erster ansatz. das problem, das damit verbunden ist: der cookie müßte beim letzten aufruf der seite gelöscht werden, damit bei der nächsten session wieder das onload einmalig durchgeführt wird; aber ich weiß ja nicht, welches der letzte aufruf ist. also müßte eine datums- und uhrzeitprüfung integriert werden, der user kann ja auch mehrmals täglich die url komplett verlassen und wiederkommen; zumindest bei der uhrzeitprüfung müßte man mit "plausiblen" zeitgrenzen arbeiten, und das ist ein bißchen heikel. ich mach mich mal dran.

danke jedenfalls für die schnelle reaktion. :)
 
man kann beim cookie ja ne art Haltbarkeitsdatum angeben. Wenn Du jetzt das ganze auf 5 minuten setzt wird der cookie nach 5 minuten gelöscht.
Wenn Du dann auf jeder Seite den Cookie neu setzt haben die User sozusagen 5minuten zeit auf der Seite zu bleiben, was ja eigentlich ausreichen sollte (also pro Seite)
 
onload?

Hi Lethe! Hi @all!
Falls ichs richtig verstanden habe,
(was ist "onload"? Hab mir extra ein Buch gekauft: "Das neue Einsteigerbuch: HTML - Webseiten", Aber eine Erklärung zu "onload" habe ich darin nicht gefunden!)
würde ich es so probieren:

Ich würde die homepage kopieren (nicht die Bilder und Musik, nur die html - scripte). Dann hätte ich folgendes:
Seite1a - Seite2a - Seite3a - ... ... ...
und
Seite1b - Seite2b - Seite3b - ... ... ... .
Die a - Seiten sind miteinander verknüpft, ebenso die b - Seiten, zwischen a und b - Seiten ist keine Verknüpfung, die 1er Seiten sind identisch, die 2er Seiten sind identisch, die 3er Seiten sind identisch, die ... ... ... .
Angenommen, Deine homepage startet mit den a - Seiten.
Angenommen auf der Seite1a ist ein kleines Bild, das nur einmal erscheinen soll, nach Anklicken des kleinen Bildes wird dieses Bild groß angezeigt.
Jetzt brauchst Du nur noch folgendes zu tun:
1. Sag deiner Seite 1a: Beim Anklicken des kleinen Bildes zeig das große Bild an und wechsele zur Seite1b.
2. Sag dem großen Bild, wenn es einen Zurück - Pfeil hat: Beim Anklicken des Zurück - Pfeils wechsele zur Seite1b.
3. Tu von der Seite1b das kleine Bild herunter, damit es nicht angeklickt werden kann. (Wenn Du willst kannst Du noch folgendes in die Seite1b schreiben: Das große Bild kann nur einmal angezeigt werden. Da es bereits einmal angezeigt wurde, kann es jetzt nicht mehr angezeigt werden.)

Jetzt kann das kleine Bild nur einmal angezeigt werden, bzw. das große Bild nur einmal erscheinen, solange innerhalb der hp gesurft wird, das funktioniert allerdings nicht, wenn der Zurückknopf des Internet Explorers benutzt wird. Bei Neuaufrufen der homepage geht alles wieder von vorne los.

Meine Fragen: Was ist "onload"?
Kann man meine Version hier auch benutzen, oder hab ich die Frage falsch verstanden?
Falls meine Version auch benutzt werden kann: Was sind die Vor - und Nachteile zu den anderen Versionen?

lg joachim
 
und event heißt Ereignis.... :)


@hjf: hmmm Du hast Dir mit Sicherheit was bei gedacht, und ich steig bei Deinen Ausführungen nicht so ganz durch, aber wieviele Versionen einer Homepage willst Du denn pflegen, wenn alles doppelt und dreifach angelegt ist?? Da sind doch Inkonsistenzen praktisch vorprogrammiert!!
 
@hjf mit dem onload-Eventhandler (~ "Ereignisauslöser") kannst du während des Ladevorganges einer Seite Dinge geschehen lassen, ohne daß irgendwelche Useraktionen nötig sind. Normalerweise ist es so, daß wenn onload verwendet wird, diese Dinge bei jedem Start der Seite geschehen. Mein Problem bestand darin, das onload nur beim ersten Aufruf einer Seite ablaufen zu lassen.

Wenn ich deine Ausführungen richtig verstanden habe - bin mir nicht ganz sicher :) - dann löst dein Verfahren eine ganz bestimmte Situation, wenn auch vielleicht ein bißchen kompliziert, Albu hat dazu ja schon was gesagt; was ich brauche, ist aber eine allgemeine Lösung, unabhängig davon, was für Dinge das onload geschehen lassen soll. Danke aber für dein Bemühen
 
@style-guide
@Albu
@Lethe

Dankeschön für Eure Antworten! Hab wieder was gelernt!
Mit meinem Beispiel lag ich also daneben, das müßte funktionieren wenn man nur einmal ein Bild (oder eine Musik oder einen Mausverfolger oder ... ... ... ) aufrufen will. Und bei ´ner großen hp wirds tatsächlich unübersichtlich.
Trotzdem hab ich mal mein Beispiel hier reingestellt, zum besseren Verständnis(Achtung: farbig):
http://www.hans-joachimfitting.de/xSeite1a_ie.htm

Zurück zu "onload": Funktioniert folgendes und ist es sinnvoll?:

1. hp ohne "onload" - Befehl erstellen: Seite1 original - Seite2 original - Seite3 original - Seite4 original - ... ... ...
2. Seite1 original kopieren - man erhält dann die Seite1 Kopie
3. Seite1 Kopie als homepage Startseite definieren und in Seite1 Kopie einen "onload" - Befehl reinschreiben

Wenn jetzt die hp gestartet wird, erscheint zuerst die Seite1 Kopie und "onload" wird ausgeführt, nach klicken zum Seitenwechsel auf der Seite1 Kopie wird man immer auf eine Seitex original Seite geleitet und von dort kommt man nie mehr auf die Seite1 Kopie zurück (man kommt zwar auf die Seite1 original, aber diese hat ja keinen "onload" Befehl.

Ich kann das leider nicht ausprobieren, weiß nicht wie man einen "onload" Befehl schreibt und versteh zu wenig von "head" und "body", würd mich trotzdem freuen wenns funktioniert.

lg joachim
 
Zuletzt bearbeitet:
Hallo!

Also, hätte da noh ne Idee:

Du machst ein FrameSet(Ich weiß, ich weiß ist nur so eine Idee) und darin einen hidden-Frame Also cols="1,*".
In den hidden-Frame definierst du eine Variable z.b.: isLoaded = 0;
Nun rufst du mit onLoad auf jeder Seite eine Funktion auf z.b.: runOnce() in der du abfragst ob top.isLoaded 0 ist oder nicht.
Wenn isLoaded 0 ist -> Funktion ausführen und isLoaded auf 1 setzen.

So ähnlich könnte es auch gehen, natürlich ist das mit den Frames wieder ein eigenes Kapitel -> mit gefällts nicht.
 
@comet danke für die idee. bin grad am rumbasteln an jennys script, aber wenn das aus irgendeinem grund nicht klappt, werde ich deine idee ausprobieren
 
Zurück
Oben