Archivlink: javarea.de Forum > JavaScript > Script anpassen für Einbledung von zeitgesteuerten Iframes
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Script anpassen für Einbledung von zeitgesteuerten Iframes
Pages: [1]
2
... nächste »
... Letzte »
| geschrieben von Ralf_8 am 22.12.2005 - 19:01 |
Hallo zusammen,
ich benutze für die Einbindung von externen Seiten ein Script.
Es basiert auf der Einblendung von unterschiedlichen Seiten (via Iframe) pro Tag.
Ist es möglich dieses Script so anzupassen, dass
alle 15 Minuten eine andere Seite angezeigt wird
anstelle jeden Tag?
Anstelle der 7 zur Verfügung stehenden Seiten pro Woche wären
das dann also nur noch 4 Seiten welche jede Stunde
angezeigt werden (z.B.'eins' , 'zwei'.....).
Leider bin ich bei meiner Suche nach einer
Umrechnung nicht fündig geworden.
So sollte es funktionieren:
Beispiel:
von 13:00:00 bis 13:14:59 - Anzeige Seite 1 von 4
von 13:15:00 bis 13:29:59 - Anzeige Seite 2 von 4
von 13:30:00 bis 13:44:59 - Anzeige Seite 3 von 4
von 13:45:00 bis 13:59:59 - Anzeige Seite 4 von 4
von 14:00:00 bis 14:14:59 - Anzeige Seite 1 von 4
...
...
usw.
Das mit 15 Minuten ist nur ein Richtwert. Die Umrechnung
kann auch in Sekunden erfolgen.
Hier das verwendete Script:
<script language="JavaScript" type="text/javascript">
<!--
var jetzt = new Date();
var wonum = jetzt.getDay();
var woname = new Array('sonntag', 'montag', 'dienstag', 'mittwoch', 'donnerstag', 'freitag', 'samstag');
document.write('<iframe width="200" hight="120" scrolling="no" frameborder="0"
src="http://www.muster.de/zeitfenster/' + woname[wonum] + '.html" ... ></iframe>');
//-->
</script>
Es wäre schön, wenn mir da jemand Unterstützung bieten
könnte.
Herzlichen Dank und Grüsse
Ralf
|
| geschrieben von Hawk am 22.12.2005 - 20:37 |
Hallo,
Du brauchstdoch nur die Minuten, weil sich doch der I_Frame alle 15 Minuten ändern soll.
| PHP-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:
27:
28:
|
<?
<script type="Text/JavaScript">
<!--
function pruefe() {
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
if (min == 15){
parent.Framename.location.href="Dateiname.htm";
}
if (min == 30) {
parent.Framename.location.href="Dateiname.htm";
}
if (min == 45) {
parent.Framename.location.href="Dateiname.htm";
}
if (min == 00) {
parent.Framename.location.href="Dateiname.htm";
}
setTimeout("pruefe()",10000); }
//-->
</script>
?>
|
|
| geschrieben von Ralf_8 am 22.12.2005 - 22:40 |
Hi Hawk,
thanks für die Hilfe.
Ich bin am ausprobieren.... stelle mich aber zu blöd an.
Folgende Frage habe ich da noch:
Wie binde ich nun die entsprechenden Seiten ein?
Ich habe das Script wie folgt angepasst (Beispiel http://www.msuter.com) :
<script type="Text/JavaScript">
<!--
function pruefe() {
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
if (min == 15){
parent.Framename.location.href="15.html";
}
if (min == 30) {
parent.Framename.location.href="30.html";
}
if (min == 45) {
parent.Framename.location.href="45.html";
}
if (min == 00) {
parent.Framename.location.href="01.html";
}
setTimeout("pruefe()",10000); }
//-->
</script>
Ich habe versucht die Zeilen mir einem direkten link zu versehen :
parent.Framename.location.href="http://www.muster.com/test/01.html";
Das ging nicht.... muss ich irgendwie die Zeile mit dem Iframe einbinden?
Kannst du mir das 1:1 einsetzen? Soviel zu meinen Künsten im programmieren ;-(
Und startet dieses Script wirklich die aktelle Seite (nach Zeit) oder immer
die erste Seite und wechselt dann nach 15 minuten?
Es sollte immer die aktuelle Seite angezeigt werden (je nach Zeit).
Uff, so viele dumme Fragen... aber : "Wissen ist Macht,nichts wissen macht nichts" ......
Wäre dir sehr dankbar dafür.
Gruss & schönen Abend
Ralf
|
| geschrieben von Hawk am 22.12.2005 - 22:50 |
Hallo,
Ich habe das noch erweitert das die richtige Seite angezeigt wird.
Du mußt deinen I_Frame noch einen Namen geben. Was im I_Frame rot markiert ist fehlt bei dir. Schau es dir in ruhe an.
Hier das Script:
| PHP-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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
|
<?
<script type="Text/JavaScript">
<!--
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
function start() {
if(min >= 15 && min <= 29) {
parent.erster.location.href="15.htm";
}
if (min >= 30 && min <= 44) {
parent.erster.location.href="30.htm";
}
if (min >= 45 && min <=59) {
parent.erster.location.href="45.htm";
}
if (min >= 00 && min <= 14) {
parent.erster.location.href="01.htm";
}
pruefe();
}
function pruefe() {
if (min == 15){
parent.erster.location.href="15.htm";
}
if (min == 30) {
parent.erster.location.href="30.htm";
}
if (min == 45) {
parent.erster.location.href="45.htm";
}
if (min == 00) {
parent.erster.location.href="01.htm";
}
setTimeout("pruefe()",10000); }
//-->
</script>
<noscript></noscript>
?>
|
| HTML-Quelltext | 1:
2:
3:
4:
5:
| </head>
<body onload="start()">
<iframe src="" width="500" height="300" frameborder="1" name="erster"></iframe>
</body>
</html> |
|
| geschrieben von Ralf_8 am 22.12.2005 - 23:16 |
Hi Hawk,
ich glaube, ich bin einen Schritt weiter gekommen.
Da ich eine Websoftware benutzt (Netobjects - ich bin
ein hobbiebastler) ) und das
Script über ein Objekt aufrufe sieht das
bei der letzten version (Tagesgesteuert) so aus:
<script language="JavaScript" type="text/javascript">
<!--
var jetzt = new Date();
var wonum = jetzt.getDay();
var woname = new Array('sonntag', 'montag', 'dienstag', 'mittwoch', 'donnerstag', 'freitag', 'samstag');
document.write('<iframe width="155" hight="160" scrolling="no" frameborder="0" src="http://www.muster.dezeitfenster/' + woname[wonum] + '.html" ... ></iframe>');
//-->
</script>
Ich sollte die neue Version auch auf die selbe Weise aufrufen können.
Soweit funktioniert der erste Teil schon mal.
Es wir was im Iframe aufgerufen.
Leider stimmt die Verlinkung noch nicht. Es wir immer
die Hauptseite meiner Website angezeigt (wenn er nicht
die entsprechende Seite 01, 30 usw. findet wird autom. zum index.html
umgeleitet).
Hier das fast funktionsfähige Script:
<script type="Text/JavaScript">
<!--
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
function start() {
if(min >= 15 && min <= 29) {
parent.erster.location.href="15.htm";
}
if (min >= 30 && min <= 44) {
parent.erster.location.href="30.htm";
}
if (min >= 45 && min <=59) {
parent.erster.location.href="45.htm";
}
if (min >= 00 && min <= 14) {
parent.erster.location.href="01.htm";
}
pruefe();
}
function pruefe() {
if (min == 15){
parent.erster.location.href="15.htm";
}
if (min == 30) {
parent.erster.location.href="30.htm";
}
if (min == 45) {
parent.erster.location.href="45.htm";
}
if (min == 00) {
parent.erster.location.href="01.htm";
}
setTimeout("pruefe()",10000); }
document.write('<iframe width="450" hight="200" scrolling="no" frameborder="0" src="http://www.muster.de/zeitfenster/ + min[min]" ... ></iframe>');
//-->
</script>
An und für sich sollte der fehler doch irgendwo in der Zeile
"docoment .... " liegen ?
Stimmt da swas mt der min bei meinem script noch nicht?
gruss
Ralf
|
| geschrieben von Hawk am 22.12.2005 - 23:29 |
Hallo,
das Problem liegt daran, das die HTML Datei in einen anderen Ordner liegt .
Aber mal eine andere Frage warum nimmst du einen I_frame und nicht einen DIV Container?
In deiner Version soll er den I_frame immer wieder neu Schreiben >>warum?
In meinen Script müßte es dann heißen:
parent.erster.location.href ="Zeitfenster/15.html";
weil die Datei im Zeitfenster ordner liegt.
Poste doch mal den gesamten Code alles von der Seite. |
| geschrieben von Ralf_8 am 23.12.2005 - 09:21 |
Hallo zusammen,
hier der aktuelle Stand wie das Script aussieht:
<TD COLSPAN=3 WIDTH=468><script type="Text/JavaScript">
<!--
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
function start() {
if(min >= 15 && min <= 29) {
parent.erster.location.href="15.html";
}
if (min >= 30 && min <= 44) {
parent.erster.location.href="30.html";
}
if (min >= 45 && min <=59) {
parent.erster.location.href="45.html";
}
if (min >= 00 && min <= 14) {
parent.erster.location.href="01.html";
}
pruefe();
}
function pruefe() {
if (min == 15){
parent.erster.location.href="15.html";
}
if (min == 30) {
parent.erster.location.href="30.html";
}
if (min == 45) {
parent.erster.location.href="45.html";
}
if (min == 00) {
parent.erster.location.href="01.html";
}
setTimeout("pruefe()",10000); }
document.write('<iframe width="450" hight="200" scrolling="no" frameborder="0" src="http://www.muster.de/zeitfenster/ + min[min]" ... ></iframe>');
//-->
</script>
Zum Testen liegen die Index-Seite (auf welcher ich das Script eingebunden habe) und
die Files 15.html usw. im selben Verzeichnis (www.muster.de/zeitfenster )
Wo kann das noch liegen ?
Wichtig ist, dass ich im selben Script die Zeitdefinition und der
Aufruf des Iframes machen kann .
Danke & bis bald
Ralph
|
| geschrieben von weisnix am 23.12.2005 - 10:32 |
So dürfte es vorab mal funktionieren:
| HTML-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:
27:
28:
| <html><head><title></title>
<script type="Text/JavaScript">
<!--
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
function starten() {
if(min >= 15 && min <= 29) {
parent.erster.location.href="15.htm";
}
if (min >= 30 && min <= 44) {
parent.erster.location.href="30.htm";
}
if (min >= 45 && min <=59) {
parent.erster.location.href="45.htm";
}
if (min >= 00 && min <= 14) {
parent.erster.location.href="01.htm";
}
}
window.setInterval("location.replace('zeit.htm')",60000); // entspricht 1 Minute
//-->
</script>
</head>
<body onload="starten()">
<iframe id="Frame" name="erster" width="450" hight="200" scrolling="no" frameborder="0" src="15.htm"></iframe>
</body>
</html> |
Zu deinem Script:
Funktion start() ist nicht – ist ein reserviertes Wort benutze starten()
Die Abfrage ist richtig, da du einen gewissen Zeitraum möchtest, also von .. bis
min == 15 ist ja nur dann wenn es genau 15 Minuten ist. (nicht 14 oder 16)
also bringt die Prüfung null, außer wäre gerade im Moment des Seitenaufrufes 00, 15, 30 oder 45.
setTimeout("pruefe()",10000); wird nur einmal aufgerufen setInterval() wiederholt die Funktion.
Wenn du schon eine Variable in document.write() benutzt dann sollte sie im Script auch definiert sein.
src=http://www.muster.de/zeitfenster/ ‚+seite+’
if(min >= 15 && min <= 29) {
seite = "15.htm";}
soweit mal das was gedanklich falsch ist.
|
| geschrieben von Ralf_8 am 23.12.2005 - 11:21 |
Merci für die Antwort.
Das hilft mir aber nicht weiter.
Gibt es eine Möglichkeit, dass mr jemand das
komplette Script programmiert?
Die Anforderungen stehen in meinem 1. Posting.
Genau dieses Schript wollte ich an die neuen
Anforderungen anpassen.
Da ich kein Programmierer bin kann ich die gutgemeinten Tipps
eh nicht umsetzen.
Oder hat mir jemand eine Adresse wo ich ans Ziel komme?
Wenn es halt ein paar Euro kostet ist das auch kein
unlösbares Problem.
Es macht keinen Sinn hier xx mal nachzufragen und ich dann
die angebotene Hilfe nicht einmal umsetzen kann.
Danke & Gruss
Ralf
|
| geschrieben von Hawk am 23.12.2005 - 11:36 |
Hallo,
Du hast doch eine seite wo das eingebaut werden soll.
Poste mal den Quelltext von der Seite, denn kann mann das dort einfügen. |
| geschrieben von weisnix am 23.12.2005 - 13:45 |
Du solltest auf alle Fälle das iFrame direkt in die Seite stecken und nicht vom Script schreiben lassen. Das mag der FF nicht.
Die Zeitabfrage muss mit in die Funktion, ansonst gibt es keine neue Werte. Dafür bracht es dann kein replace der eigenen Seite mehr.
In den body-Tag das onload nicht vergessen, damit wird beim ersten laden der Seite das richtige FrameSeite angezeigt.
Das Script sieht so aus.
| HTML-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:
27:
28:
| <html><head><title></title>
</head>
<body onload="starten()">
<script type="Text/JavaScript">
<!--
function starten() {
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
if(min >= 15 && min <= 29) {
parent.erster.location.href="15.htm";
}
if (min >= 30 && min <= 44) {
parent.erster.location.href="30.htm";
}
if (min >= 45 && min <=59) {
parent.erster.location.href="45.htm";
}
if (min >= 00 && min <= 14) {
parent.erster.location.href="01.htm";
}
}
window.setInterval("starten()",60000); // entspricht 1 Minute
//-->
</script>
<iframe id="Frame" name="erster" width="450" hight="200" scrolling="no" frameborder="0" src="15.htm"></iframe>
</body>
</html> |
|
| geschrieben von Hawk am 23.12.2005 - 13:55 |
@weisnix,
Wird nicht bei deinen Script die Seite alle Minute neu geladen. Reicht es nicht aus am Anfang abzufragen welche Seite geladen werden soll.
Danach reicht es doch das es zu den bestimmten Minuten umgeschaltet wird. |
| geschrieben von Ralf_8 am 23.12.2005 - 14:46 |
Hallo,
im Prinzip muss das Iframe nicht neu geladen werden.
Es sollte nur das richtige Iframe beim Aufruf der Siete angezeigt
werden.
z.B. 14:13:00 : 01.html
Wenn einer auch 5 Stunden die Startseite immer wieder durchliesst muss
das Iframe nicht wechseln.
Nur die Erstanzeige ist wichtig.
Gruss & Dank
Ralf |
| geschrieben von Ralf_8 am 23.12.2005 - 15:10 |
Hallo 
Ich denke es sieht jetzt ganz gut aus.
Schaut mal unter:
http://www.thuli.ch/pages/test
Bin aber noch am Testen
Gruss
Ralf |
| geschrieben von Hawk am 23.12.2005 - 15:11 |
Hallo,
Dann brauchst Du nur den ersten teil des scriptes und ohne setTimeout oder setInterval.
| PHP-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:
27:
28:
|
<?
<script type="Text/JavaScript">
<!--
var jetzt = new Date();
var min =jetzt.getMinutes();
if(min < 10) min ='0'+min;
function starten() {
if (min >= 00 && min <= 14) {
parent.erster.location.href="01.htm";
}
if(min >= 15 && min <= 29) {
parent.erster.location.href="15.htm";
}
if (min >= 30 && min <= 44) {
parent.erster.location.href="30.htm";
}
if (min >= 45 && min <=59) {
parent.erster.location.href="45.htm";
}
}
//-->
</script>
<body onload="starten()">
<iframe src="" width="500" height="300" frameborder="1" name="erster"></iframe>
</body>
?>
|
Du mußt nur den Pfad der datei beachten das der korrekt angegeben ist. |
|