Website in iFrame je nach Wochentag

Twister5000

Kabelverknoter(in)
Hallo liebe PCGHExtremer,
ich möchte eine kleine Seite basteln, auf der man immer den Plan für den aktuellen und den nächsten Tag sehen kann. Diese Pläne sind auf einer externen Website ebenfalls einsehbar, jedoch auf (nach Wochentag) getrennten Seiten, also der für Montag z.B. auf "http://beispielseite.de/plan-fuer-mo.htm", deshalb sollen die zwei genannten in iFrames auf dieser einen Seite zu sehen sein.

Nun habe ich ein Script geschrieben, bei dem ich mir nicht ganz sicher bin, wieso es nicht funktioniert:
HTML:
<html>
<head>
  <title>Seitentitel</title>
</head>
<body>

<script>
   var jetzt = new Date();
   var TagInWoche = jetzt.getDay();
   var Wochentag = new Array("mo", "mo", "di", "mi", "do", "fr", "mo");
   document.getElementById('id').innerHTML = Wochentag[TagInWoche];
   var address = "http://beispielseite.de/plan-fuer-" + Wochentag + ".htm";
   <iframe src=address width="400" height="500">Hier sollte eigentlich der Plan für Heute zu sehen sein.</iframe>;
</script>

</body>
</html>
Samstags und Sonntags soll ebenfalls der Plan für Montags angezeigt werden.

Mir ist bewusst, dass durch src=address im iFrame die URL "http://aktuelleseite.de/adress" aufgerufen wird, ich finde aber leider nicht heraus, wie ich die URL auf die Variable setzen kann.

Könnte mir jemand helfen mein Script zu vervollständigen/reparieren und kann ich, um den jeweils nächsten Tag drunter anzeigen zu lassen, einfach das Script kopieren und drunter einfügen und dann einfach alle Tage um einen verschieben?

Vielen Dank im voraus,
Twister5000
 
Hallo,

da sind noch so einige Fehler enthalten:

  • Text lässt sich mit JavaScript nicht so direkt ausgeben. Man könnte zwar document.write nutzen, schön ist aber was anderes. Du solltest dem zu manipulierenden Element eine ID zuweisen. Die URL setzt Du mit GetElementById('Id').src
  • Aus dem selben Grund sollte man JS und die Seitenelemente (iframe.....) trennen.
  • Das Seitenelement "id" ist nicht vorhanden
  • in der URL darf nicht "Wochentag" genutzt werden, sondern nur ein Element des Arrays
  • getDay fängt Sonntags an zu zählen, Wenn Du also die Tage mit dem Array "vertauschen" willst, musst Du Deine Werte ändern.
  • Um nicht zwei Arrays zu nutzen, sollte man den neuen Index einfach berechnen.
Hier nun ein Beispiel mit zwei iframes, ganz unschön per <br> untereinander gesetzt, von denen das erste mit dem passenden URL gefüllt wird. Für das zweite den Teil des Scriptes ab "// Berechnung des Folgetages" kopieren und die ID für "tag2" anpassen.

HTML:
<html>
<head>
  <title>Seitentitel</title>
</head>
<body>

<iframe id="tag1" src="" width="400" height="500">Hier sollte eigentlich der Plan für Heute zu sehen sein.</iframe>
<br>
<iframe id="tag2" src="" width="400" height="500">Hier sollte eigentlich der Plan für Heute zu sehen sein.</iframe>

<script>
   var jetzt = new Date();
   var TagInWoche = jetzt.getDay();
   var Wochentag = new Array("so", "mo", "di", "mi", "do", "fr", "sa");
   // Berechnung des Folgetages
   TagInWoche = (TagInWoche + 1) % 7;
   if (TagInWoche == 0 || TagInWoche == 6) {
     // am Sonntag und Samstag die Seite für Montag anzeigen
     TagInWoche = 1;
   }
   var address = "http://beispielseite.de/plan-fuer-" + Wochentag[TagInWoche] + ".htm";
   document.getElementById('tag1').src = address;
</script>

</body>
</html>
 
Würde das ganze eher über PHP machen. Sonst geht die Anzeige nämlich nur, wenn man JavaScript im Browser aktiviert hat.
 
Vielen Dank Leute, ich habe es jetzt gemacht, wie fotoman es vorgeschlagen hat und es funktioniert einwandfrei!
 
Allerdings ist aktiviertes Javascript für den Internetnutzer ein Sicherheitsrisiko.
Am besten gleich das Patch-Kabel ziehen. Dann ist es noch sicherer.

Hab übrigens gehört, ausführbare Dateien stellen ein höhes Sicherheitsrisiko dar. Also bitte keine Anwendungen mehr starten und am besten auf Stift und Papier umsteigen. Da ist man relativ sicher, falls man sich nicht gerade am Papier schneidet. :daumen:
 
Schädliche ausführbare Dateien werden aber vom Virenscanner erkannt, wenn sie bekannt sind. Das der Virenscanner aber Exploits im Javascript erkennt wäre mir neu.
Deshalb bleiben Scripts auf unbekannten Seiten aus.
 
Wegen JavaScript Panik schieben, aber sich auf Virenscanner verlassen. :daumen:

Ich hoffe, du blockierst auch sämtliche Bildinhalte und am Besten auch gleich CSS.
 
Deshalb bleiben Scripts auf unbekannten Seiten aus.
Was hat das mit unbekannten Seiten zu tun? Woher weiss ich (oder schon nur ihr als Forenbetreiber/Mods), welche Scripte hier im Forum von internen oder externen Quellen nachgeladen werden? Ob da ein JQuery nun von den PCGH-Seite oder von sonstwo geladenn wird, ist mir vollkommen egal, auch auf der PCGH-Seite kann mir jemand ein manipuliertes Scrip unterschieben.

Wenn Du solche (durchaus berechtigte) Bedenken hat, dann könntesst Du ja mal im "eigenen" Forum dafür sorgen, dass es auch ohne den ganzen JS-Müll vollständig läuft. Für das eigentliche Forum wäre sowas nicht nötig, für die Menüleiste auch nicht und Werbe- oder Aufrufzähler interessieren mich als Besucher nicht (insb., wenn sie per JS realisiert sind).

Falls die Seite oben wirklich für mehr wie nur ein kleines experiment gedacht ist, würde ich mir ganz andere Gedanken machen wie die, ob ich die Adresse der iframes per (in die Seite integriertem) JS setze oder per externem PHP (dafür muss man auch erst mal den passenden Webspace haben). Als erstes gehört für mich das iframe abgeschafft und die Daten (per PHP o.Ä.) werden lokal aus der Datenbank geladen. Das, was man dem Besucher der Seite über die iframes unterjubeln kann, ist wohl bedeutend "gefährlcher".

Entweder habe ich Kontrolle über den (derzeit externen) Plan, dann kann ich die Daten auch gleich selber hosten oder dort abfragen. Oder ich habe die Kontrolle nicht (ext. Stundenplan, den mir die Schule/Uni zu verfügung stellt), dann passt das Layout mit Sicherheit nicht zu dem, was ich einen Seitenbesuchern zumuten möchte. Damit bleibt für mich noch die rein hobbymäßige Eigennutzung, bei der ich meinem Script wohl vertraue.
 
Als Mod hab ich leider mit der technischen Umsetzung im Forum absolut nichts zutun. Dafür sind die Admins zuständig.
Ich hatte ja auch z.B. schon angemerkt, das zumindest eine extra Loginseite die mit TLS geschützt ist eingerichtet wird. Bisher werden die Logindaten ja komplett unverschlüsslelt übertragen. Das sollte in Zeiten, wo es SSL-Zertifikate über LetEncrypt kostenlos gibt nun wirklich nicht mehr sein.
Leider schien das die Admins nicht so wirklich zu interessieren.
 
Zurück