Masterfrage fuer Java-Script-Cracks
Marko
Hallo Ihr da draussen in den endlosen Weiten des Webs, vielleicht kann mir jemand einen Tip geben. Ich habe eine dynamische Werbeflaeche auf meiner Seite eingebaut: http://www.rhein-neckar-guide.de Der Text und die Grafik wird von einem Javascript, das in einem unsichtbaren Frame (1%) laueft in den Werbungsframe hineingeschrieben. Jetzt scheint das Ganze etwas instabil zu sein, ausserdem wird beim IE die History ueberschrieben, was auch nicht sein sollte. Hat jemand eine Idee fuer eine stabile Implementierung, die auch die History von NS und IE nicht veraendert ?
Vielen Dank im vorraus
Marko
Hallo Marko
Ich habe eine dynamische Werbeflaeche auf meiner Seite eingebaut: http://www.rhein-neckar-guide.de Der Text und die Grafik wird von einem Javascript, das in einem unsichtbaren Frame (1%) laueft in den Werbungsframe hineingeschrieben. Jetzt scheint das Ganze etwas instabil zu sein, ausserdem wird beim IE die History ueberschrieben, was auch nicht sein sollte. Hat jemand eine Idee fuer eine stabile Implementierung, die auch die History von NS und IE nicht veraendert ?
Warum vom anderen Frame aus mit document.write eine Grafik schreiben? Arbeite doch in der Datei selbst mit einem JavaScript, das die Grafik mit Hilfe des Image-Objekts wechselt. OK, das kann Netscape 2 und MS IE 3 noch nicht, aber alle Surfer wirst Du mit JavaScript eh nie erreichen. Fuer die Loesung mit dem Image-Objekt brauechtest Du jedenfalls keine "unsauberen" Tricks wie Miniframes.
viele Gruesse
Stefan Muenz
Stefan Muenz
Hallo,
http://www.rhein-neckar-guide.de Der Text und die Grafik wird von einem Javascript, das in einem unsichtbaren Frame (1%) laueft in den Werbungsframe hineingeschrieben.
noch ein andere Gedanke neben dem von Stefan:
Wenn Du auch aeltere Browser erreichen willst, dann bau die document.write()-Geschichte doch in die Seite ein, in der auch angezeigt wird. ich sehe da keinen Unterschied zu der in eigenem Frame, ausser dass man nicht so viele Besonderheiten (Ladezustand / Vorhandensein von Frames etc.) beachten muss.
Christine
PS: Angucken konnte ich mir die jetzige Loesung leider nicht - Browser-Absturz :-(
Hallo und schon mal Danke,
ja also, wahrscheinlich bin ich nur wieder zu unwissend, aber wenn ich das Document.write() in die Seite packe, stoße ich spätestens beim löschen des Frameinhalts auf ein Problem, dann ist das Script auch gelöscht, oder ?
Wenn Du auch aeltere Browser erreichen willst, dann bau die document.write()-Geschichte doch in die Seite ein, in der auch angezeigt wird. ich sehe da keinen Unterschied zu der in eigenem Frame, ausser dass man nicht so viele Besonderheiten (Ladezustand / Vorhandensein von Frames etc.) beachten muss.
Der Vorschlag von Stefan scheint ganz gut zu sein, aber eigentlich wollte ich gerade mit Text und nicht nur mit Grafiken arbeiten um KB's zu sparen. Gibt es vielleicht irgendeine gangbare Möglichkeit mit Dynamic HTML ?
PS: Angucken konnte ich mir die jetzige Loesung leider nicht - Browser-Absturz :-(
Verstehst Du nun was ich mit etwas zu unstabil gemeint habe ? *g*
Marko
ja also, wahrscheinlich bin ich nur wieder zu unwissend, aber wenn ich das Document.write() in die Seite packe, stoße ich spätestens beim löschen des Frameinhalts auf ein Problem, dann ist das Script auch gelöscht, oder ?
Wenn was neues in den Frame geladen wird oder der Frame nicht mehr existiert, ja sicher, dann ist nichts von dem alten mehr da, aber dann brauchst Du doch auch das Banner nicht mehr.
Der Vorschlag von Stefan scheint ganz gut zu sein, aber eigentlich wollte ich gerade mit Text und nicht nur mit Grafiken arbeiten um KB's zu sparen.
Hm, da passiert doch aber genau dasselbe. Frame bzw. Frameinhalt weg, Bild, na klar, mit weg.
Christine
Hallo Christine,
Wenn was neues in den Frame geladen wird oder der Frame nicht mehr existiert, ja sicher, dann ist nichts von dem alten mehr da, aber dann brauchst Du doch auch das Banner nicht mehr.
»»
Ich glaub ich muss das mal besser erläutern, der ganze Frame dient als eine Werbefläche, in die dynamisch alle 8 Sekunden ein neuer Inhalt geschrieben wird (Grafik & Text), und das ganze wird von einem JS, das in einem anderen Frame läuft gesteuert.
Das ganze soll sich ein bisschen von herkömmlichen Werbebannern abheben.
Und je mehr ich darüber nachdenke desto eher tendiere ich dazu wirklich nur mit Grafikobjekten zu arbeiten, oder wie kann ich den Text auswechseln ? Das ist des Pudels Kern !!!
Gruss
Marko
Hallo, Marko!
Ich glaub ich muss das mal besser erläutern, der ganze Frame dient als eine Werbefläche, in die dynamisch alle 8 Sekunden ein neuer Inhalt geschrieben wird (Grafik & Text), und das ganze wird von einem JS, das in einem anderen Frame läuft gesteuert.
Das ganze soll sich ein bisschen von herkömmlichen Werbebannern abheben.
Und je mehr ich darüber nachdenke desto eher tendiere ich dazu wirklich nur mit Grafikobjekten zu arbeiten, oder wie kann ich den Text auswechseln ? Das ist des Pudels Kern !!!
Mach doch in den Werbe-Frame eine Seite, die sich selbst aktualisiert, indem sie vom Server eine neue Seite holt. z. B. mit Meta-Tag-Refresh. Das dürfte die beste Lösung sein. Server-Push wäre auch möglich, aber mit den Meta-Tags und festen Seiten (Die gecachet werden) kannst Du nach einem Durchlauf aller Seiten ohne Netzzugriff arbeiten, da alles im Cache liegt.
Hallo Ihr da draussen in den endlosen Weiten des Webs, vielleicht kann mir jemand einen Tip geben. Ich habe eine dynamische Werbeflaeche auf meiner Seite eingebaut: http://www.rhein-neckar-guide.de Der Text und die Grafik wird von einem Javascript, das in einem unsichtbaren Frame (1%) laueft in den Werbungsframe hineingeschrieben. Jetzt scheint das Ganze etwas instabil zu sein, ausserdem wird beim IE die History ueberschrieben, was auch nicht sein sollte. Hat jemand eine Idee fuer eine stabile Implementierung, die auch die History von NS und IE nicht veraendert ?
Vielen Dank im vorraus
Marko
Wie wärs mit folgender Idee: Das Script wird in die HTML-Datei mit aufgenommen, die die Frames aufbaut. Das Script sollte vor der Frame-Definition kommen. Am besten löscht man auch noch die letzte Zeile des Scripts ( setTimeout("change()",10000); ) und nimmt in der HTML-Datei für den entsprechenden Frame in das BODY-Tag den onLoad="top.change()"-Befehl auf. So ist sichergestellt, daß das Script erst gestartet wird, wenn das Frame wirklich geladen ist. Die Lösung funktioniert mit meinen IE4 und NS3/4-Versionen.
Um das Verändern der History des IE4 zu unterbinden genügt ein document.open('text/html','replace'). Allerdings gibt es jetzt ein Problem, wenn die Seite über dem "BACK" oder "FORWARD"-Button wieder aufgerufen wird. Jetzt wird nämlich kein erneutes Java-Script mehr ausgeführt, da hilft auch kein "RELOAD"-Button.