Scorpion1983: Jeden Tag ein anderes Bild

Servus,

habe eine Problem. Ich soll etwas erstellen, welches das Firmenlogo jedentag wechselt. Haben bei uns 6 Logovarianten. Jeden Tag soll eine andere Logovariante angezeigt werden.Der 7 Tag beinhaltet das 6 Logo. Diese Logo befindet sich auf etliche tausend Seiten. Ich habe einen Javascript Datei erstellt und eine einfach html Datei zum Testen.
Die Javascript Datei beinhaltet folgenden Inhalt und heisst:
"day-changer.js":

var now = new Date();
var zaehler = now.getDay();
if(zaehler==1)
{monday();}
else if(zaehler==2)
{tuesday();}
else if(zaehler==3)
{wednesday();}
else if(zaehler==4)
{thursday();}
else if(zaehler==5)
{friday();}
else if(zaehler==6)
{saturday();}
else if(zaehler==7)
{sunday();}

function monday()
{logo1=new Image()
logo1.src='tag1.gif'
document.images['logo'].src=logo1.src
}

function tuesday()
{
logo2=new Image()
logo2.src='tag2.gif'
document.images['logo'].src=logo2.src
}

function wednesday()
{
logo3=new Image()
logo3.src='tag3.gif'
document.images['logo'].src=logo3.src
}

function thursday()
{
logo4=new Image()
logo4.src='tag4.gif'
document.images['logo'].src=logo4.src
}

function friday()
{
logo5=new Image()
logo5.src='tag5.gif'
document.images['logo'].src=logo5.src
}

function saturday()
{
logo6=new Image()
logo6.src='tag6.gif'
document.images['logo'].src=logo6.src
}

function sunday()
{
logo7=new Image()
logo7.src='tag7.gif'
document.images['logo'].src=logo7.src
}

Jetzt meine HTML Datei zum Testen "test3.htm":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Bilderwechsler pro Tag</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" src"day-change.js"></script>
</head>
<body bgcolor="black">
<center><font face="Geneva, Arial, Helvetica, sans-serif" color="#FFFFFF">Bildwechsel pro Tag</font></center><br>
<br>
<center>
<img src="tag1.gif" name='logo'>
</center>
</body>
</html>

kann mir einer sagen, warum die Bilder nicht gewechselt werden bzw. was ich falsch mache ?

Ich möchte auch kein "document.write" benutzen.Wollte, dass der Script die Namen der Bilder ansteuert und diese dann ersetzt.

  1. hallo,

    es funktioniert bei mir, wenn du das skript unter das image setzt (oder wenn du eine funktion bastestelst (argh) die im body onload="" aufgerufen wird)

    gruss

    --
    no strict;
    no warnings;
    Selbstcode: (_*_) ^_^ ( . ) ( . ) :-(bla)
    1. Also sollte es dann so aussehen. Bei der javascript Datei:

      // JavaScript Document

      function daychanger()
      {

      var now = new Date();
      var zaehler = now.getDay();
      if(zaehler==1)
      {monday();}
      else if(zaehler==2)
      {tuesday();}
      else if(zaehler==3)
      {wednesday();}
      else if(zaehler==4)
      {thursday();}
      else if(zaehler==5)
      {friday();}
      else if(zaehler==6)
      {saturday();}
      else if(zaehler==7)
      {sunday();}

      function monday()
      {logo1=new Image()
      logo1.src='tag1.gif'
      document.images['logo'].src=logo1.src
      }

      function tuesday()
      {
      logo2=new Image()
      logo2.src='tag2.gif'
      document.images['logo'].src=logo2.src
      }

      function wednesday()
      {
      logo3=new Image()
      logo3.src='tag3.gif'
      document.images['logo'].src=logo3.src
      }

      function thursday()
      {
      logo4=new Image()
      logo4.src='tag4.gif'
      document.images['logo'].src=logo4.src
      }

      function friday()
      {
      logo5=new Image()
      logo5.src='tag5.gif'
      document.images['logo'].src=logo5.src
      }

      function saturday()
      {
      logo6=new Image()
      logo6.src='tag6.gif'
      document.images['logo'].src=logo6.src
      }

      function sunday()
      {
      logo7=new Image()
      logo7.src='tag7.gif'
      document.images['logo'].src=logo7.src
      }

      }

      bei der HTML Datei:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <title>Bilderwechsler pro Tag</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <script language="JavaScript" src"day-change.js"></script>
      </head>
      <body bgcolor="black" onload="daychanger()" >
      <center><font face="Geneva, Arial, Helvetica, sans-serif" color="#FFFFFF">Bildwechsel pro Tag</font></center><br>
      <br>
      <center>

      <img src="tag1.gif" name='logo'>

      </center>

      </body>
      </html>

      so ? Weil bei mir funktioniert es nicht.

      1. nein

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
        <title>Bilderwechsler pro Tag</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

        </head>
        <body bgcolor="black" onload="daychanger()" >
        <center><font face="Geneva, Arial, Helvetica, sans-serif" color="#FFFFFF">Bildwechsel pro Tag</font></center><br>
        <br>
        <center>

        <img src="tag1.gif" name='logo'>                             <----
        <script language="JavaScript" src"day-change.js"></script>   <----
        </center>

        </body>
        </html>

        --
        no strict;
        no warnings;
        Selbstcode: (_*_) ^_^ ( . ) ( . ) :-(bla)
  2. Hi,

    Servus,

    habe eine Problem. Ich soll etwas erstellen, welches das Firmenlogo jedentag wechselt. Haben bei uns 6 Logovarianten. Jeden Tag soll eine andere Logovariante angezeigt werden.Der 7 Tag beinhaltet das 6 Logo. Diese Logo befindet sich auf etliche tausend Seiten. Ich habe einen Javascript Datei erstellt und eine einfach html Datei zum Testen.
    Die Javascript Datei beinhaltet folgenden Inhalt und heisst:
    "day-changer.js":

    var now = new Date();
    var zaehler = now.getDay();

    [...]

    else if(zaehler==7)

    Dieser Fall wird nie eintreten, da getDay Werte von 0 bis 6 zurückliefert.

    Wofür brauchst Du 7 Funktionen?

    Ich würd das so machen:

    var now = new Date();                   //aktuelles Datum holen
    var wochentag = now.getDay();           //daraus Wochentag ermitteln (0 = Sonntag, 1 = Montag, ... 6 = Samstag)
    if (wochentag == 6) wochentag = 0;      //Samstag und Sonntag zusammenlegen.

    if (document.images['logo'])            //nur falls das img-Element existiert
    {
        document.images['logo'].src =       //dessen src-Attribut neu setzen
                'tag' + wochentag + '.gif'; //dabei den String aus den konstanten Teilen und der Wochentags-Nummer zusammensetzen
    }

    Die Bilder müssen dann halt von 0 bis 5 durchnumeriert sein statt von 1 bis 7, das 7. Bild ist nach Deiner Beschreibung ja eh überflüssig)
    Der Aufruf des Scripts darf natürlich erst erfolgen, wenn das img-Element auch schon existiert. Aber das hat Eternius Dir ja schon erklärt.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  3. Hallo Scorpion1983

    Ich möchte auch kein "document.write" benutzen.Wollte, dass der Script die Namen der Bilder ansteuert und diese dann ersetzt.

    Warum nicht?
    Wenn das Script das Logo nachträglich wechselt, wird immer erst ein unnötiges Bild geladen und dann ausgewechselt.
    Ich persönlich würde MudGuards Script [pref:t=79196&m=459265] in eine Funktion packen, dort statt

    if (document.images['logo'])
    {
        document.images['logo'].src =
                'tag' + wochentag + '.gif';
    }

    folgendes

    document.write('<img src="' + 'tag' + wochentag + '.gif' + '" alt="XYZ">');

    schreiben.

    Im HTML dann:

    <script type="text/javascript">
    <!--
      SchreibeBild();
    //-->
    </script>
    <noscript>
      <img src="tag0.gif" alt="XYZ">
    </noscript>

    MFG
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!