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

[FRAGE] Einsteigerfragen zu Script für Diplomarbeit

jennyjava96

New member
Hallo,
Ich finde keinen Fehler für meine Diplomarbeit - kann mir jemand helfen?
Der Code soll in ein html Dokument eingebettet werden und bewirken, dass in den Sommer- und Wintermonaten ein anderer Banner, als in den restlichen Monaten angezeigt wird.
Danke im Voraus!

Code:
<html>
<head>
<title> </title>
<script type="text/javascript"> 

var Grafiken = [
    "BannerWinter.jpg",
    "BannerWinter.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerSommer.jpg",
    "BannerSommer.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerWinter.jpg"
];

var Monatstext = [
	"Banner im Winter",
	"Banner im Winter",
	"Banner",
	"Banner",
	"Banner",
	"Banner",
	"Banner im Sommer",
	"Banner im Sommer",
	"Banner",
	"Banner",
	"Banner",
	"Banner im Winter"
];

var jetzt = new Date();
var Jahresmonat = jetzt.getMonth();


function BildDesMonats()
{
document.getElementById("Monatsbild").src = Grafiken[Jahresmonat]
document.getElementById("Monatsbild").title = Monatstext[Jahresmonat]
}

BildDesMonats();

window.onload=floo;

</script>
</head>
<body>

<img id="Monatsbild" src="BannerNormal.jpg" title="text" width="1600" height="300" alt="Banner" />

</body>
</html>

Das ist mein jetziger Code. Sieht zwar schon viel besser aus, funktioniert aber leider noch immer nicht.
Trotzdem danke für eure Hilfe, ihr seid echt klasse!
 
Zuletzt bearbeitet:
AW: Banner INAD

Hallo!
Es ist nicht sinnvoll, seine Frage einfach auf irgend einen Thread drauf zu setzen. Dafür macht man einen neuen auf. Außerdem fehlten die Code Tags. Hab das mal alles für dich erledigt.

Zur Frage: Was steht denn in der Fehlerkonsole?
Tipp: Es fehlt ein öffnendes Tag und ein Funktionsaufruf.

Im übrigen: Warum verwendest du die XHTML Schreibweise und setzt keinen dazu passenden DOCTYPE?
Die Array Definitionen kann man eleganter machen.
 
AW: Banner INAD

So viel sehe ich auf Anhieb:
1. Grafiken(Monat[Jahresmonat]): Grafiken ist ein Array; um darauf zuzugreifen, musst Du eckige Klammern verwenden, nicht runde. So wie Du es bei Monat[Jahresmonat] schon gemacht hast. Analog bei Monatstext(Monat[Jahresmonat]);
2. Bei demselben Code: Monat[Jahresmonat] liefert den Monat ausgeschrieben in Stringform. Der Index in den Arrays Grafiken und Monatstext ist jedoch nummerisch. Wahrscheinlich kannst Du auf das Array Monat verzichten und einfach mit dem nummerischen Wert zugreifen: Grafiken[Jahresmonat] und Monatstext[Jahresmonat].
 
Sempervivum: Ich dachte, er/sie/es sollte alle Fehler über die Fehlerkonsole selbst zu erkennen und beheben lernen wg. Diplomarbeit und so.
Mal schauen, ob wir Rückmeldung bekommen.
 
Danke für die schnelle Rückmeldung!
Leider wusste ich nicht, wie man einen neuen Thread erstellt, deshalb habe ich meine Frage auf einen anderen Thread gesetzt. Danke, dass du das für mich erledigt hast!

Ich habe das Array Monat jetzt gelöscht und den Code verändert und den passenden doctype hinzugefügt.

mikdoe: Was meinst du mit dem fehlenden öffenden Tag und Funktionsaufruf?

Programmierung ist ziemliches Neuland für mich, daher freue ich mich über jeden Kommentar, großes Dankeschön!
 
mikdoe: Was meinst du mit dem fehlenden öffenden Tag und Funktionsaufruf?
Du hast doch nur 6 Tags in deinem Quellcode, da solltest du doch in der Lage sein diese zu kontrollieren, bzw. den Quellcode mal durch einen HTML-Validator prüfen lassen. Aber hier mal ein Tip: Wo fängt denn dein Skriptblock an?
Als zweites war bestimm gemeint, das die Funktion BildDesMonats() in dem Code aus Beitrag #1 nirgends aufgerufen wird.


Ich habe das Array Monat jetzt gelöscht und den Code verändert und den passenden doctype hinzugefügt.
Dann aktualisiere doch auch deinen Code in Beitrag #1 und kommentiere das unterhalb, dann sehen wir ob noch was im Argen ist.


Tips zum Code:
Ein neues Array definieren geht auch so var Grafiken = []; finde ich persönlich besser.
Daher kannst du dann auch statt
Code:
var Grafiken = new Array();
Grafiken[0] = "BannerWinter.jpg";
Grafiken[1] = "BannerWinter.jpg";
Grafiken[2] = "BannerNormal.jpg";
Grafiken[3] = "BannerNormal.jpg";
Grafiken[4] = "BannerNormal.jpg";
Grafiken[5] = "BannerNormal.jpg";
Grafiken[6] = "BannerSommer.jpg";
Grafiken[7] = "BannerSommer.jpg";
Grafiken[8] = "BannerNormal.jpg";
Grafiken[9] = "BannerNormal.jpg";
Grafiken[10] = "BannerNormal.jpg";
Grafiken[11] = "BannerWinter.jpg";
dein Array auch gleich wie folgt definieren:
Code:
var Grafiken = [
    "BannerWinter.jpg",
    "BannerWinter.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerSommer.jpg",
    "BannerSommer.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerNormal.jpg",
    "BannerWinter.jpg"
];
 
Zuletzt bearbeitet:
j-l-n meint die HTML-Tags (BB-Code-Tags) des Forums:
[ html ]hier dein HTML-Code[ /html ] (ohne Leerzeichen)
http://forum.vbulletin-germany.com/misc.php?do=bbcode
Du findest sie auch in der erweiterten Ansicht des Beitrags-Editors: Der Button "<>".
Wenn es jetzt noch nicht funktioniert, liegt das daran, dass zum Zeitpunkt der Ausführung des Skriptes das img-Tag mit der ID "Monatsbild" noch nicht existiert. Du musst deine Funktion im onload oder am Ende des Body aufrufen.
 
Zuletzt bearbeitet:
j-l-n meint nicht die HTML-Tags sondern die BB-Code-Tags des Forums:
[ code ]hier dein code[ /code ] (ohne Leerzeichen)
BB-Code Liste - vBulletin Germany Support Forum
Wenn es jetzt noch nicht funktioniert, liegt das daran, dass zum Zeitpunkt der Ausführung des Skriptes das img-Tag mit der ID "Monatsbild" noch nicht existiert. Du musst deine Funktion im onload aufrufen.

hab mal gegoogelt und gefunden, dass ich eine Funktion im onload aufrufe, indem ich window.onload=floo; in den javasricpt schreibe, richtig?
außerdem wird mir komischerweise ein Syntaxfehler in der Funktion angezeigt, wenn ich den Code in Dreamweaver als JavaScript Datei öffne.
 
So gern ich's auch verstehen würde, ich kann dir leider nicht folgen. Arrays und Funktionen benötigen doch keine Tags?
Ich habs mal für dich erledigt... Erklärt wurde es ja schon durch Sempervivum.

(Außerdem habe ich Beitrag #11 freigeschaltet.)

- - - Aktualisiert - - -

hab mal gegoogelt und gefunden, dass ich eine Funktion im onload aufrufe, indem ich window.onload=floo; in den javasricpt schreibe, richtig?
Ja, dass ist eine Möglichkeit.

außerdem wird mir komischerweise ein Syntaxfehler in der Funktion angezeigt, wenn ich den Code in Dreamweaver als JavaScript Datei öffne.
Was bekommst du denn für einen Syntaxfehler?
 
Ich habs mal für dich erledigt... Erklärt wurde es ja schon durch Sempervivum.

(Außerdem habe ich Beitrag #11 freigeschaltet.)

- - - Aktualisiert - - -


Ja, dass ist eine Möglichkeit.


Was bekommst du denn für einen Syntaxfehler?

Danke!
Sehe leider jediglich, dass in der Zeile document.getElementById("Monatsbild").title = Monatstext[Jahresmonat] ein Fehler auftritt, wenn ich sie als html Datei öffne, gibt's keinen Fehler.
Funktionieren tuts allerdings trotzdem leider noch immer nicht.
 
Zuletzt bearbeitet von einem Moderator:
Du schreibst oben window.onload=floo;, was ist floo? - Ne Funktion ist es nicht, jedenfalls sehe ich im Code keine.

Siehst du keine genaue Fehlerbeschreibung? Nur die Ausgabe "Es ist ein Fehler aufgetreten" hilft leider ziemlich wenig weiter...
 
Der geänderte Code passt schon nur sind da 2 Fehler drinnen:

1: Der Aufruf BildDesMonats(); führt deine Funktion sofort aus, also bevor das img vorhanden ist. Daher entferne das dort komplett.

2: Das mit dem onload ist schon der korrekte Weg, Du musst dafür nur wissen, das onload eine Funktion oder eine Funktionsreferenz erwartet. In deinem Beispiel die Funktion floo() - daher musst du das in window.onload=BildDesMonats; ändern. Das ist die Funktionsreferenz, also ohne die runden Klammern ()
 
Gibts keinen Vorschlag mehr von eurer Seite?
Ähm... was ist mit den ganzen Anmerkungen von miniA4k und rico? Ich sehe nicht, dass du den Code "oben aktualisiert" hast... So fehlt z.B. immer noch ein DOCTYPE oder
nur sind da 2 Fehler drinnen:

1: Der Aufruf BildDesMonats(); führt deine Funktion sofort aus, also bevor das img vorhanden ist. Daher entferne das dort komplett.

2: Das mit dem onload ist schon der korrekte Weg, Du musst dafür nur wissen, das onload eine Funktion oder eine Funktionsreferenz erwartet. In deinem Beispiel die Funktion floo() - daher musst du das in window.onload=BildDesMonats; ändern.
 
Zurück
Oben