Entwickler-Ecke

Off Topic - An alle Leute die Ahnung von JavaScript haben! *neue Frage*


DD - Mo 03.11.03 17:56
Titel: An alle Leute die Ahnung von JavaScript haben! *neue Frage*
Wollte gerade einen JavaScript Kalendar für meine HP bauen. Bin auch dafür das ich erst vor zwei Tagen mit JS angefangen habe recht weit gekommen, jedoch funzt das nicht so richtig. Kann mir irgendwer sagen, was an folgendem Code falsch ist:
Danke im Vorraus


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
<script type="text/javascript">
  <!--
    var x = new Date;
    var Tag = x.getDate();
    var Monat = x.getMonth()+1;
    if ((Tag == 16) && (Monat == 11)) {
    document.write ("Heute ist der "+Tag+"."+Monat+".");
    document.write ("<br><br>Heute hat der wichtigste Mensch in meinem Leben Geburtstag. ");
    document.write ("<br> Alles Gute zum 20. mein Engel. Ich liebe dich über alles auf der Welt. Tausend Küsse! Dein Schatz.");
    }
    else if ((Tag == 20) && (Monat == 11)) {
    document.write ("Heute ist der "+Tag+"."+Monat+".");
    document.write ("<br>Heute hat Laura Stienen Geburtstag.");
    document.write ("<br>Liebe Laure, alles Gute zum 18. von meiner Seite.");
    }
    else if ((tag == 29) && (Monat == 11)) {
    document.write ("Heute ist der "+Tag+"."+Monat+".");
    document.write ("<br>Heute hat mein guter Kumpel Elvis Geburtstag.");
    document.write ("<br>Happy Birthday Bull. Feier schön und bleibe dem Bier treu.");
    }
    else 
    document.write ("Heute ist der "+Tag+"."+Monat+".");
    document.write ("<br>Keine besonderes Ereignis");
    
  //-->
  </script>


Gruß, DD


Delete - Mo 03.11.03 19:05
Titel: Re: An alle Leute die Ahnung von JavaScript haben!
DD hat folgendes geschrieben:
Kann mir irgendwer sagen, was an folgendem Code falsch ist:

Der Ansatz schon mal. Wenn ich einen Terminplaner habe, dann programmiere ich den nicht ständig neu, sondern ich gebe nur den Termin ein und erwarte, dass ich informiert werde.
Will sagen: Was bringt es in deinem Fall, wenn du ständig den Skriptteil anpassen musst, um dir Termine melden zu lassen? Du solltest darüber nachdenken, die Informationen anders zu speichern, um sie a) auf der Seite anzuzeigen und b) aktuell anstehende Termine auch in irgendeiner Form hervorzuheben.

Und JavaScript ist im Gegensatz zu Delphi penibel, wenn es um die Schreibweise geht:
Zitat:

Quelltext
1:
    else if ((tag == 29) && (Monat == 11)) {                    

Wenn du "Tag" hier plötzlich klein schreibst, ist das für JS eine völlig neue Variable.


DD - Mo 03.11.03 19:53
Titel: Re: An alle Leute die Ahnung von JavaScript haben!
Die MEthode habe ich bewusst so gewählt aber das ist jetzt auch egal.
Habe die Variablen umgeschrieben, sprich großgeschrieben...klappt leider trotzdem nicht....Habe ich sonst noch einen Fehler drinnen?

Gruß DD


Delete - Mo 03.11.03 22:30

Wenn ich dein Skript in eine HTML-Seite einfüge und den o.g. Fehler behebe, dann sehe ich die (grammatisch völlig inakzeptable) Meldung
Zitat:
Heute ist der 3.11.
Keine besonderes Ereignis

Das ist der einzige Fehler, der mir noch auffällt.

So, ich muss jetzt weg ... Anja gucken ... (@DaFox :mrgreen:)


DaFox - Mo 03.11.03 22:59

Was Anja kommt... Ich muss weg!
BTW: Jetzt weiß ich auch wie Deine Signatur gemeint ist! :mrgreen:

Gruß,
Markus


DD - Di 04.11.03 18:25

danke...soweit klappt jetzt alles.

Habe allerdings ne weitere JavaScript Frage, für die ich nicht unbedingt nen neuen Thread aufmachen wollte und zwar: kann ich mit

Quelltext
1:
document.write ("blablabka");                    

auch Images einfügen sprich:

Quelltext
1:
document.write ("<img src="......">");                    

oder geht das nicht?

Wie kann man sonst Bilder per in JS eingebetetem html anzeigen lassen, sobald eine bestimtme Bedingung erfüllt ist.

Danke mal wieder im Vorraus
Gruß, DD


Bela Urlaub - Di 04.11.03 23:08

probiers mal so:
document.write ('<img src="......">');
so müsste es gehn :roll:

PS: Merk dir das, wenn in html, JS PHP oda sonst was in einer klammer oda nach einem = ein " kommt und das bereits in einem " steht muss das ERSTE " gegen ein ' ausgetauscht werden

(Ich hoff es is einigermaßen gut erklärt :angel:


Delete - Mi 05.11.03 09:28

Zitat:
Merk dir das, wenn in html, JS PHP oda sonst was in einer klammer oda nach einem = ein " kommt und das bereits in einem " steht muss das ERSTE " gegen ein ' ausgetauscht werden

Muss? Sicher nicht. Wenn du hinterher noch durchsiehst, reicht es auch, die jeweils inneren Anführungszeichen durch einen Backslash zu "entwerten" (escapen)

Quelltext
1:
document.write("<img src=\"pic.png\" ...>");                    


barfuesser - Mi 05.11.03 11:05

Ich würde mich an Deiner Stelle mal mit der DOM-Struktur auseinandersetzen. Damit lassen sich komplette Teilbäume in das Dokument einfügen, entfernen bzw. austauschen. Außerdem existiert diese auch in XML-Documenten, wo Du mit document.write wahrscheinlich auch nicht weit kommen wirst.

barfuesser


Delete - Mi 05.11.03 18:48

barfuesser hat folgendes geschrieben:
Außerdem existiert diese auch in XML-Documenten, wo Du mit document.write wahrscheinlich auch nicht weit kommen wirst.

Das kannst du doch gar nicht vergleichen. Sicher, das DOM (Document Object Model) mag in den meisten Fällen eleganter sein. Aber es gibt bspw. keine Notwendigkeit, ein Bild in eine XML-Datei einzufügen. Schon allein deswegen nicht, weil ein XML-Dokument im Normalfall überhaupt keine Angaben zum Layout enthält.

Der einzige Vorteil, den DOM bietet, ist, dass du zu 99% keine Rücksicht mehr auf irgendeinen Browser nehmen musst. Die aktuellen, und damit meine ich IE6, Mozilla 1.x und Opera 7.x, verstehen die Befehle, womit das browser-abhängige Programmieren à

Quelltext
1:
2:
3:
if(ns) { ... do something for Netscape }
  else if(ie) { ... do something for IE }
    else { ... do something for ... whatever }

entfällt. Alte Browser fallen damit zwar raus, aber (und das habe ich auch schon oft genug gesagt) angesichts der teils massiven Lücken sollte man diese alten Dinger sowieso nicht mehr verwenden. Warum also noch unterstützen?

Wenn du aber das DOM für DDs Problem empfiehlst, dann ist mein zusätzlicher Rat, ein Element innerhalb der Seite zu verwenden, das mit einer ID gefunden werden kann. Etwa ein DIV oder ein P-Absatz, weiß der Geier was.
Ansonsten musst du nämlich das komplette Dokument abgrasen um die Stelle zu finden, wo Kalender und/oder Bild rein sollen. Und jede Änderung im Layout bewirkt u.U., dass sich die Elemente verschieben, womit der Zugriff auf das x. DIV evtl. nicht mehr das DIV ist, das man für den Kalender im Sinn hatte. ;)