countdown aus daten Frame heraus starten

nauti_lus

Grünschnabel
Hallo Forum,

ich habe eine ganz simplen Countdown der in einem datenFrame geladen wird und dann in meinen mainFrame schreibt.
Klappt auch wunderbar. Nun ist es so, dass sich mein datenFrame alle paar sekunden refreshed und dadurch der Countdown anfängt zu ruckeln.
Durch das neu anstoßen des Countdowns kann es eben zu überschneidungen der Zeit kommen.

Nun meine Frage, wie kann ich diesen Countdown über den dataFrame anstoßen ohne ihn selbst andauernd wieder selbst zu laden.

dataFrame:
Code:
echo "var zeit = ".$sekunden.";\n";
echo '	function zaehlen()
	{                
		zeit = zeit-1;
		if (zeit >= 0)
			parent.mainFrame.document.getElementById("time").innerHTML = "Start in: "+zeit;
		else
			parent.mainFrame.document.getElementById("time").innerHTML = "Am Start";
		window.setTimeout ("zaehlen()",1000);
	}';

mainFrame:
Code:
<div id="time"></div>

Hoffe ihr wisst was ich meine ;)

Danke schonmal!
 
in dem datenframe werden noch andere daten geladen nicht nur der timer..

generelle bin ich so weit, dass ich den timer ja nur einmal anstoßen darf.. aber wie mache ich das.
wie kann ich z.b sagen, wenn der timer läuft, dann rufe die funktion nicht auf andernfalls rufe sie auf?
 
hmmm.. wie schaue ich ob was in dem div - time was steht?

mit
Code:
function go()
{
	parent.mainFrame.zeit = 60;
	parent.mainFrame.zaehlen();
}



if(!parent.mainFrame.document.getElementById("time").value)
{
	go();
}

geht es nicht...

und wie lösche ich dann wieder den Inhat, denke mal einfach so:
Code:
parent.mainFrame.getElementById("time").innerHTML = "";
 
Zuletzt bearbeitet:
Hi,

danke für die Antwort hatte es gestern schon hinbekommen aber noch nicht gepostet.
Das ich document vergessen hatte habe ich dann auch noch gemerkt. Kann ja mal meine Lösung posten für den, den es interessiert.

dataFrame:
PHP:
echo 'function go()
	{
		parent.mainFrame.zeit = zeit;
		parent.mainFrame.zaehlen();
	}
				
	if(parent.mainFrame.document.getElementById("time").innerHTML == "")
	{
		go();
	}';

if(empty(EREIGNIS)
{
	
	print 'parent.mainFrame.document.getElementById("time").innerHTML = "";';
}

showFrame
Code:
var zeit = 0;

function zaehlen()
{                
	zeit = zeit-1;	
	
	if (zeit >= 0)
	{
		parent.mainFrame.document.getElementById("time").innerHTML = "Start in: "+zeit;
		window.setTimeout ("zaehlen()",1000);
	}
	else
	{
		parent.mainFrame.document.getElementById("time").innerHTML = "Am Start";
	}
}

gruß
nauti
 

Neue Beiträge

Zurück