2.1k Aufrufe
Gefragt in Webseiten HTML von hitxldaniel Einsteiger_in (81 Punkte)
Hallo,

ich suche ein fertiges Script für das automatische Laden verschiedener Indexseiten.

Ich habe unterschiedliche Indexseiten erstellt zu aktuellen Anlässen (Weihnachten, Neujahr und Ostern). Diese Indexseiten habe ich in verschiedene Unterordner auf dem Webspace hinterlegt.

Ich möchte nun in ein solches Script Zeiträume eintragen, wann welche Indexseite (Beim Aufruf der Domain) geladen werden soll.

Weihnachten: 10.12. - 26.12.
Neujahr: 27.12. - 10.01.
Ostern: 15.04. - 25.04.
Übrige Zeit: normale Indexseite

Und das alle Jahre wieder.

Gibt es sowas? Habe leider keine Ahnung vom Scripten:-(

Danke, für Eure Hilfe!

Gruß
Daniel

10 Antworten

0 Punkte
Beantwortet von
sowas gibts vermutlich. Sinnvolle Lösungen dafür laufen über serverseitige Scripte (PHP u.ä.). Userseitiges JavaScript wäre eine sehr schlechte Möglichkeit. Was steht dir zur Verfügung und womit kennst du dich aus?

BTW: deine Definition der Weihnachtszeit ist eigenwillig, die Osterzeit ist so Unsinn, du müsstest entweder jedes Jahr korrigieren oder das Script den genauen Ostertermin berechnen lassen.
0 Punkte
Beantwortet von hitxldaniel Einsteiger_in (81 Punkte)
Hallo,

also, wie ich schon geschrieben habe, verfüge ich über keine Kenntnisse. Ich kann zwar Schriptvorlagen nach meinen Bedürfnissen bearbeiten, aber nur, wenn die entsprechenden Stellen, die es zu editieren gilt, gekennzeichnet sind.

Die Osterzeit, beispielsweise, müsste selbstverständlich neu berechnet werden.

Ich denke, mein Webspaceanbieter unterstützt alle Formen der Scriptsteuerung. Meine Seite wird auch über css- und Java-Scripte gesteuert.

Gruß
Daniel
0 Punkte
Beantwortet von
Hi,
wenn du dir etwas Mühe gibst, dann kannst du dir ein Javascript selbst erstellen. Anleitungen findest du genügend z.B. hier.
Ein Script zur Berechnung der Feiertage, Karfreitag und Ostern findest du hier: http://www.gerhard-gall.de/Ostern3.htm
0 Punkte
Beantwortet von
naja, der 1. Link von Solo führt allerdings weit in die Vergangenheit (tippe auf 90er-Jahre), die Scripte dort sind alles andere als zeitgemäß, und gut waren sie schon damals nicht.

Um hier sinnvoll helfen zu können, bräuchte es aber mehr Infos und mehr Engagement:
- was steht denn nun wirklich zur Verfügung?
- wie sehr unterscheiden sich die Startseiten (komplett, ein Satz, ein Bild, CSS, ...)?
0 Punkte
Beantwortet von hitxldaniel Einsteiger_in (81 Punkte)
Hallo,

es ändert sich an der eigentlichen Seite nichts!

Lediglich ein PopUp-Fenster erscheint zu den entsprechenden Anlässen. Dieses PopUp-Fenster öffnet sich allerdings nicht als eigenständiges Fenster, sondern als der Hompage integriertes, menüfreies und adressfreies Fenster.

Homepage: http://www.daniel-kienle.de

Gruß
0 Punkte
Beantwortet von
das ist kein PopUp-Fenster sondern ein div-Element, das vor den eigentlichen Seiteninhalt gelegt wird.
Ohne javaScript lässt sich das nicht entfernen, also sehen Menschen mit deaktiviertem JS den eigentlichen Seiteninhalt nicht. Sehr unprofessionel!

Aber jedenfalls reduziert sich deine Frage auf: Wie kann ich das Hintergrundbild dienen DIVs jahreszeitenabhängig ändern? Das ist was ganz anderes als dein Ausgagsposting.

Ist es das, was du wirklich willst, incl. der sehr unprofessionellen JavaScript-Abhängigkeit. Ob bei deiner Seite überhaupt irgendwas wie geplant zu realisieren ist, lässt sich zudem angesichts der zahlreichen Fehler und der JavaScript-Wurschtelei schwer vorhersagen.
0 Punkte
Beantwortet von hitxldaniel Einsteiger_in (81 Punkte)
Hallo,

wenn ich Kenntnisse hätte, dann wäre das Eingangsposting sicher anders formuliert worden. Aber, da ich wenig Kenntnisse habe und ich hier fertige Scripte benutzt habe, kann ich nicht sagen, oder einschätzen, ob hier etwas "unprofessionell" ist oder nicht!

Jedenfalls, um Deine Anmerkung aufzugreifen, möchte das "Hintergrundbild" des DIV's anlassabhängig ändern. Während der übrigen Zeit soll da kein DIV erscheinen.

Gruß
0 Punkte
Beantwortet von
es geht um diesen Kram
<div id="survey_layer" style="border:2px solid #FFFFFF; DISPLAY: block; Z-INDEX: 999; LEFT: 326px; WIDTH: 696px; POSITION: absolute; TOP: 136px; BACKGROUND-COLOR: #004080; visibility:visible; height:477px;
background-image:url('http://www.daniel-kienle.de/images/ostergruss.jpg')">
<div class="q-bold-14px-darkblue" style="LEFT: 40px; PADDING-BOTTOM: 120px; WIDTH: 65px; PADDING-TOP: 50px; POSITION: relative; TOP: 40px; height:149px">
&nbsp;</div>
<div style="FONT-WEIGHT: bold; FONT-SIZE: 3px; RIGHT: 7px; CURSOR: pointer; COLOR: red; POSITION: absolute; TOP: 4px; visibility:visible" onclick="this.parentNode.style.left = '-10000px';">
<img height="24" alt="Schliessen" src="http://www.hitxl.de/images/fenster_schliessen.gif" width="106" border="0"></div>
</div>


ändere erst einmal folgendes
visibility:visible; in display:none;
"onclick="this.parentNode.style.left = '-10000px';"" in onclick="this.parentNode.style.display = 'none';"

jetzt zum JavaScript
<script type="text/javascript">
var gruss=document.getElementById("survey_layer");
if (gruss) {
var jetzt=new Date, jahr=jetzt.getFullYear(), t, bild=null;
var termin={
Neujahr1:[new Date(jahr,11,27),new Date(jahr,11,31),"neujahr.jpg"],
Neujahr2:[new Date(jahr,0,1),new Date(jahr,0,10),"neujahr.jpg"],
Ostern:[new Date(jahr,3,15),new Date(jahr,3,25),"ostern.jpg"],
Weihnachten: [new Date(jahr,11,10),new Date(jahr,11,26),"weihnacht.jpg"]
};
for (t in termin) {
if (termin[t][0]<=jetzt && termin[t][1]>=jetzt) bild=termin[t][2]);
}
if (bild) {
gruss.style.display="block";
gruss.style.backgroundImage="http://www.daniel-kienle.de/images/"+bild;
}
}
</script>
(ungetestet)

Das müsste unmittelbar hinter obigen Code eingefügt werden (lieber wäre mir etwas anderes, aber dafür müsste ich die übrigen JavaScripte analysieren, und das mag ich nicht tun). Die Osterberechnungsfunktion habe ich mal weggelassen, du könntest stattdessen sowas wie
Ostern2011:[new Date(2011,3,15),new Date(2011,3,25),"ostern.jpg"],
Ostern2012:[new Date(2012,3,15),new Date(2012,3,25),"ostern.jpg"],
....
mit Anpassung der entsprechenden Jahres, Monats, Tageszahlen für die nächsten paar Jahre einfügen (Achtung: die Monatszahl ist um 1 kleiner als im Kalender, Monat 0 ist Januar, Monat 11 ist Dezember)


Falls es nicht funktioniert poste hier bitte die Fehlermeldungen aus der Fehlerkonsole des Firefox (Menü Extra)
0 Punkte
Beantwortet von
sehe gerade: visibility:visible; kommt mehrmals vor. ändere das erste, lösche alle anderen
0 Punkte
Beantwortet von
Mir ist doch unwohl mit all den anderen Scripten auf deiner Seite, daher wäre folgende Änderung sinnvoll


<script type="text/javascript">
(function() {
var gruss=document.getElementById("survey_layer");
if (gruss) {
var jetzt=new Date, jahr=jetzt.getFullYear(), t, bild=null;
var termin={
Neujahr1:[new Date(jahr,11,27),new Date(jahr,11,31),"neujahr.jpg"],
Neujahr2:[new Date(jahr,0,1),new Date(jahr,0,10),"neujahr.jpg"],
Ostern:[new Date(jahr,3,15),new Date(jahr,3,25),"ostern.jpg"],
Weihnachten: [new Date(jahr,11,10),new Date(jahr,11,26),"weihnacht.jpg"]
};
for (t in termin) {
if (termin[t][0]<=jetzt && termin[t][1]>=jetzt) bild=termin[t][2]);
}
if (bild) {
gruss.style.display="block";
gruss.style.backgroundImage="http://www.daniel-kienle.de/images/"+bild;
}
}
})()
</script>


Die merkwürdige Klammerung schirmt das Script gegen Beeinflussung durch andere Scripte ab.
...