• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Probleme mit Siebar-Gadget...

Silver_Bear

Neues Mitglied
Hallo, ich weiß nicht ob das hier wirklich hingehört, aber ich will/wollte ein Sidebar-Gadget für Windows Vista/7 programmieren. Da ich davon nocht nicht soviel Ahnung habe, wirds erstmal was ganz einfaches. Und da wir ja jetzt Dezember haben würde ich gern einen Adventskranz programmieren.

Der soll ein mit 5 Bildern also eins mit keiner Kerze, eins mit einer Kerze usw. funktionieren. Ich hab also eine Zeit abfrage mit getday() formuliert und die lass ich in einem If-Statement prüfen. Jetzt also drei Fragen:

Wie kann ich per JS auf den src-Pfad vom HTML-Bild zugreifen?

Wie kann ich das ganze so progammieren, das JS nur eine bestimmt Zeitspanne in den Statements abfragt? Also von 28. November bis 5. Dezember usw.

Warum zeigt Win mir eine Fehlermeldung wenn ich versuche das Gadget zu starten? (evtl. hat hier ja jemand Ahnung vom programmieren von Windows Gadgets...)

Hier der Code der Index Datei:
Code:
<body>
<img src=keinekerze>
<script type="text/javascript">

var day = getday()
if (day >= 28)
{
<img src="keinekerze">
}

if (day )
</script>
</body>

(Ist noch nicht vollständig, da ich nicht weiß wie ich weitermachen soll...)

Danke im vorraus!

Hier das Gadget(Ist einfach nur eine .rar Datei bei der .gadget hinten drangeschrieben wurde):
http://rapidshare.com/files/433625347/Adventskranz.gadget

Und hier die Index-Datei:
http://rapidshare.com/files/433625338/index.html

PS: Ich weiß das es hier eine Anhang-Funktion gibt, bei der kann man allerdings nur Bilder uploaden...
 
Zuletzt bearbeitet:
Okay, ich hab mir das alles nochmal vorgenommen, und auch kräftig verändert.
Hier erstmal das Skript:
Code:
var jetzt = new Date();
var monat = new Date();
var day = jetzt.getday();
var month = jetzt.getmonth();
if (jetzt >= 28 && jetzt<= 30 && monat == 11 )
{
document.img(src="einekerze.jpg")
}

if (jetzt >= 05 && jetzt <= 12  && monat == 12)
{
document.img(src="zweikerzen.jpg")
}

if (jetzt >= 12 && jetzt <= 19 && monat == 12 )
{
document.img(src="dreikerzen.jpg")
}

if (jetzt >= 19 && jetzt <= 24 && monat == 12 )
{
document.img(src="vierkerzen.jpg")
}

Ja, ich weiß, das mit den vielen ifs ist nicht sehr schön, aber ich mags halt auf die lange aber einfache Variante.

Wenn ich das ganze jetzt mal in meinem Browser öffne, wird mir allerdings das erste Bild, also keinekerze.jpg, angezeigt! Warum:?: (Am Datum liegts nicht, siehe Beitragsdatum...)
 
Oh Gott, ich will jetzt nicht unhöflich sein, aber das bereitet mir Kopfschmerzen!
Ich will dir hier mal deine Fehler aufzählen:
HTML:
<script type="text/javascript"><!--
var jetzt = new Date(); // In Ordnung
var monat = new Date(); // Was soll das? Du hast doch schon "jetzt"
var day = jetzt.getday(); // Das heißt jetzt.getDay( ); ...
var month = jetzt.getmonth(); // Hier dasselbe: jetzt.getMonth( );

/*
 * Jetzt gehts los...
 * Was soll das monat == 11? Wir erinnern uns: var monat = new Date( ); != Integer!
 * Du versuchst also eine Objekt-Instanz mit 11 zu vergleichen... Da KANN ja nichts
 * bei rauskommen!
 */
if (jetzt >= 28 && jetzt<= 30 && monat == 11 )
{
  document.img(src="einekerze.jpg")
  /* 
   * Oh mein Gott... Du versuchst gerade das gesamte HTML-Dokument als ein Bild zu
   * behandeln. document hat noch nicht mal ein img-Attribut.
   * Den Lösungsansatz will ich dir an dieser Stelle noch nicht verraten, sonst machst
   * du dir das alles noch zu schwer.
   */
}

if (jetzt >= 05 && jetzt <= 12  && monat == 12)
{
  document.img(src="zweikerzen.jpg")
}

if (jetzt >= 12 && jetzt <= 19 && monat == 12 )
{
  document.img(src="dreikerzen.jpg")
}

if (jetzt >= 19 && jetzt <= 24 && monat == 12 )
{
  document.img(src="vierkerzen.jpg")
}
--></script>

Überdenke die Sache noch mal und versuche JavaScript auf einer lokalen Seite zu verwenden... Dann erst kannst du solche Projekte angehen.
 
Zuletzt bearbeitet:
* Was soll das monat == 11? Wir erinnern uns: var monat = new Date( ); != Integer!
* Du versuchst also eine Objekt-Instanz mit 11 zu vergleichen... Da KANN ja nichts
* bei rauskommen!

Das ist zwar prinzipiell richtig, aber JS hat (wie viele Skriptsprachen) Mechanismen zur Typkonvertierung, d.h. in dem Fall wird die Funktion valueOf des Date Objekts aufgerufen, die den Timestamp, also eine Zahl, zurückgibt.
 
Zurück
Oben