ferngesteuertes "Auto Refresh"

  • #1
A

Ace_NoOne

Bekanntes Mitglied
Themenersteller
Dabei seit
07.04.2002
Beiträge
403
Reaktionspunkte
0
Ort
Germany
Hallo zusammen,

zum Spaß habe ich mir eine kleine Seite erstellt, die folgenden Zweck erfüllen soll:
Im oberen von zwei Frames kann man eine URL sowie ein Zeitintervall angeben. Diese Angaben werden benutzt, um im unteren Frame die entsprechende URL zu laden und regelmäßig zu aktualisieren.
Das klappt soweit auch ganz gut (allerdings bisher nur im IE, warum weiß ich noch nicht). Nun wollte ich noch einen Countdown hinzufügen, um in der Statusleiste die Zeit bis zur nächsten Aktualisierung anzuzeigen - und genau hört es bei mir auf, ich krieg's einfach nicht hin (wenn es in JavaScript doch nur einen normalen PAUSE- oder WAIT-Befehl gäbe anstatt dieser rekursiven SetTimeout-Funktion... ).
Falls sich jemand meine Kreation ansehen würde und vielleicht eine Idee hat, wie ich es besser machen könnte, wäre ich sehr dankbar!

A propos: Momentan greift das obere Frame, in dem die Einstellungen vorgenommen werden, noch auf eine externe SETTINGS.HTML zurück - kann man das nicht irgendwie in die Frameset-Datei integrieren, um alles in einer eine einzelnen Datei zu haben?
 
  • #2
Hallo,
hier ein kleiner Ansatz, habe jetzt leider keine Zeit, geh mit Familie essen... ;D

Code:
<html>
<head>
<script type=text/javascript>
<!--
var frisch = 10; //
	function cd( )
	{
		
		window.status = Zeit bis zur nächsten Aktualisierung:  + frisch + sek;
		frisch = frisch - 1;
		if (frisch >= 0)
		{
		window.setTimeout('cd( )',1000);
		}
		else
		{
		window.status = Die Seite wurde aktualisiert;
		}
	}
//-->
</script>
</head>
<body onload=cd( )>
</body>
</html>
 
  • #3
Danke für die rasche Antwort.
Allerdings hilft mir dieser Ansatz leider nicht weiter; etwas Ähnliches hatte ich bereits, nur irgendwie klappt's in Verbindung mit der periodischen Aktualisierung des unteren Frames nicht...
 
  • #4
Code:
<script type=text/javascript>
<!--

function refreshFrame()
{
	switch(document.form_settings.interval_unit.selectedIndex)
	{
		case 0: // seconds (s)
			var interval = document.form_settings.interval.value * 1000;
			break;
		case 1: // minutes (min)
			var interval = document.form_settings.interval.value * 60000;
			break;
		default: // not necessary due to fixed selection list
			var interval = document.form_settings.interval.value * 1000;
	}
	//countDown(interval); // working!
	countDown(interval);
}

function countDown(time) // working!
{
	i = time; // to circumvent problem with re-defining parameter value in recursive runs (?)
	window.defaultStatus = Time till refresh:  + (i/1000) +  seconds;
	i = i - 1000;
	if(i <= -1) {
		parent.frames[1].location.href = document.form_settings.URL.value;
		refreshFrame();
	} 
	else {
		window.setTimeout(countDown(i), 1000);
	}
}

//-->
</script>

Und das ganze bitte in den oberen Frame ;) ;) ;)

gruss conny

PS:
- Die Millisekunden hab ich mal wegen is nich rausgeschmissen ;) ;D
- Den Standardwert hab ich auf Sekunden erhöht
 
  • #5
Genau so sollte es sein - supi! Vielen Dank!!
Ein paar kleine Anpassungen musste ich vornehmen (z.B. document.frames[0].form_settings.URL.value statt document.form_settings.interval.value), aber sonst klappt's perfekt.
Naja, noch nicht ganz: Im Firefox rührt sich seltsamerweise überhaupt nix. Die Funktion wird allerdings aufgerufen, wenn man den Refresh-Button klickt; ich habe probeweise ein alert('test') in die refreshFrame-Funktion eingefügt, und das klappt auch - aber eben sonst nix!? :(
 
  • #6
OK, meine Funktion hat bei mir auch im Fuchs funktioniert.
Schon mal die JS Einstellungen kontrolliert ???

Ace_NoOne schrieb:
document.frames[0].form_settings.URL.value statt document.form_settings.interval.value

Versteh ich nicht :(
Das eine hat doch mit dem anderen nix zu tun ???

Aber wenns geht, soll mir's recht sein ;D
 
  • #7
Seltsam - ich hab' ja an deiner Version kaum was geändert (außer eben o.g. Zusatz). Und die JS-Einstellungen sind auch alle aktiviert. Könntest du's mal mit meiner Version im FF probieren?

Conny schrieb:
Ace_NoOne schrieb:
document.frames[0].form_settings.URL.value statt document.form_settings.interval.value

Versteh ich nicht :(
Das eine hat doch mit dem anderen nix zu tun ???
Oops, falsch gepastet: sollte natürlich heißen: document.frames[0].form_settings.URL.value statt document.form_settings.URL.value - der Verweis auf das entsprechende Frame hatte halt gefehlt...
 
  • #8
Ace_NoOne schrieb:
der Verweis auf das entsprechende Frame hatte halt gefehlt...

Nö, da hat nix gefehlt ;D

Conny schrieb:
Und das ganze bitte in den oberen Frame ;) ;) ;)

Was is'n damit ???
Nicht gemacht :mad:

edit: Im oberen Frame kann im BODY-Tag eine onLoad Anweisung rein, dann rennts von alleine :D

Code:
<body onLoad=refreshFrame()>
 
  • #9
Oops, das hatte ich komplett übersehen (trotz der drei Hasen... ) - sorry!
Dann brauche ich natürlich auch den Verweis auf das Frame nicht - und schon funktioniert's.
Nochmals besten Dank für die Hilfe!!

Jetzt muss ich nur noch dran denken, dass der Refresh-Button nur ein einziges Mal betätigt werden darf, sonst stimmt der Timer nicht mehr. Aber das ist schon gut so.
 
  • #10
Hallo Ace_NoOne

Das was du da geschrieben hast ist genau aber genau das was ich suche?
ICh verstehe nicht viel von HTML und so.. darum habe ich eine bitte an dich.
Würdest du mir den Quelcode schicken damit ich dieses Tool bei mir Lokal laufen lassen kann? Danke dir Gruss
 
  • #11
Meine Email:

[email protected]
 
Thema:

ferngesteuertes "Auto Refresh"

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben