iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Beitrag von Maxe »

Hallo zusammen,

ich habe aktuell eine Funktion geschrieben, welche mir ein iFrame aller 10 Sekunden aktualisiert.

Code: Alles auswählen

<iframe src="test.html" name='iframe_review' onload="iframe_review.setTimeout(function(){ iframe_review.location.reload();}, 10000);">
Jetzt möchte ich aber, dass man die Aktualisierung mit einem Button, Haken, ect. deaktivieren (aber auch wieder aktivieren) kann.

Hat jemand soviel JS-Kenntnisse und könnte mir vielleicht helfen?

Danke und viele Grüße...
Maxe

PS: Ich könnte mir auch eine Deaktivierung vorstellen wenn jemand den Scrollbalken des iFrames bedient.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9295
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Beitrag von gn#36 »

Das müsste grob so gehen:
  • Bau dir ein Formular z.B. mit dem Namen iframeform
  • Setze ein Häkchen hinein, das du benutzen willst und nenne das z.B. haken
  • erweitere deine Funktion so, dass sie eine Abfrage so ähnlich wie das hier ausführt:

    Code: Alles auswählen

    if(document.forms.iframeform.haken.checked == true)
    {
    // deinen Reload durchführen
    }
  • Nutze bei dem Häkchen ein "onchange" Event, das beim aktivieren des Häkchens den iframe sofort neu läd (kannst du ja quasi so machen wie oben, ebenfalls mit der Abfrage ob der Haken ausgewählt ist oder nicht).
Kann sein, dass ich auf die Schnelle was vergessen habe, aber im Prinzip müsste das so gehen. Wenn du invertieren möchtest (also ohne Häkchen neu laden) dann einfach true durch false ersetzen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Re: iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Beitrag von Maxe »

Hallo gn#36,

vielen Dank für deine Rückmeldung.
Ich habe das Thema wegen schlechten JS-Kenntnissen einige Tage beiseite gelegt und mich heute wieder ran gewagt.

Folgender Stand:
Mein Code funktioniert soweit, dass der iFrame immer aktualisiert wird, bis ich die checkbox anklicke. Dann kommt keine Aktualisierung mehr.

Mach ich jedoch den Haken wieder raus kommt ebenfalls keine Aktualisierung mehr. Warum?

Code: Alles auswählen

<form name="iframeform">
<input type="checkbox" name="haken">
<iframe src="test.html" name='iframe_review' onload="if(document.forms.iframeform.haken.checked == false) { iframe_review.setTimeout(function(){ iframe_review.location.reload();}, 1000); };">
</iframe>
</form>
würde mich nochmal über deine Unterstützung sehr freuen.

Danke Maxe
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9295
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Beitrag von gn#36 »

Das liegt vor allem daran, dass du das hier nicht gemacht hast:
Nutze bei dem Häkchen ein "onchange" Event, das beim aktivieren des Häkchens den iframe sofort neu läd (kannst du ja quasi so machen wie oben, ebenfalls mit der Abfrage ob der Haken ausgewählt ist oder nicht).
Das letzte Timeout läuft ab sobald du den Haken abwählst. Danach wird das aber nicht mehr automatisch gestartet. Du musst also einfach im onchange des Häkchens genau den gleichen Scriptcode einbauen wie beim iframe.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Re: iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Beitrag von Maxe »

Hallo gn#36,

danke für den Hinweis, das war die Lösung:

Code: Alles auswählen

<form name="iframeform">
<input type="checkbox" name="haken" checked onchange="iframe_review.setTimeout(function()
			{ 
				iframe_review.location.reload();
			}
		, 1000);">
<iframe src="weiterempfehlen.php" name='iframe_review' onload="
if(document.forms.iframeform.haken.checked == true) 
	{ 
		iframe_review.setTimeout(function()
			{ 
				iframe_review.location.reload();
			}
		, 1000);
	};">
</iframe>
</form>
Nur leider bekomme ich es im phpBB2 Forum absolut nicht zum Laufen.

Ich habe es in der posting_topic_review.tpl eingebaut, aber es will in dem Zusammenspiel nicht funktionieren:

Code: Alles auswählen

<!-- BEGIN switch_inline_mode -->
		<form name="iframeform">
<table class="table" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="toprowleft"></td>
<td class="toprow">{L_TOPIC_REVIEW}</td>

<td class="toprow" width="100">
	
		<input type="checkbox" name="haken" checked onchange="iframe_review.setTimeout(function() { iframe_review.location.reload(); } , 1000);">
</td>

<td class="toprowright"></td>
</tr>
</table>
<table class="table" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row1top">

		<iframe width="100%" height="300" src="{U_REVIEW_TOPIC}" name='iframe_review' onload="if(document.forms.iframeform.haken.checked == true) { iframe_review.setTimeout(function() { iframe_review.location.reload(); } , 1000);};">
		
<!-- END switch_inline_mode -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<!-- BEGIN postrow -->
<tr>
<td width="150" valign="top" class="row1">
<a name="{postrow.U_POST_ID}"></a><b>{postrow.POSTER_NAME}</b><br /><br />
<span class="small"><b>{L_POSTED}:</b><br />{postrow.POST_DATE}</span>
</td>
<td class="row2" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr> 
<td width="100%" height="25"><b>{L_POST_SUBJECT}</b>: {postrow.POST_SUBJECT}</td>
</tr>
<tr> 
<td>
{postrow.MESSAGE}
{postrow.ATTACHMENTS}
</td>
</tr>
</table>
</td>
</tr>
<tr> 
<td colspan="2" class="spacer"></td>
</tr>
<!-- END postrow -->
</table>
<!-- BEGIN switch_inline_mode -->
		</iframe>
		</form>
</td>
</tr>
</table>
<table class="table" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="footrowleft"></td>
<td class="footrow">.</td>
<td class="footrowright"></td>
</tr>
</table>
<!-- END switch_inline_mode -->
Wenn ich den Haken setzen und entferne, dann aktualisiert er den iFrame, aber nur einmal.

Ich verstehe das absolut nicht :cry:

Siehst du vielleicht einen Fehler?

Grüße und ein schönes Wochenende...
Maxe
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9295
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Beitrag von gn#36 »

Auf den ersten Blick eigentlich nicht, auch wenn es mich wundert, dass du so viel HTML Code innerhalb deines iframes hast. Schau dir vielleicht mal die Javascript Fehlermeldungen an, die dein Browser so loggt, eventuell ist da ein Fehler zu finden, der dafür sorgt, dass die Funktion nicht ausgeführt wird. Vielleicht gibt's auch irgendwo einen Namenskonflikt.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Re: iFrame aller 10 Sek. aktualisieren wenn Haken gesetzt

Beitrag von Maxe »

Oh man gn#36, du bist absolut spitze! :-)

Ich habe festgestellt, dass ich die form vom einem anderen Formular seit immer und ewig vergessen hatte zu schließen.

So waren es mit dem neuen Formular zwei Anfänge aber nur ein Ende und daher der Fehler!

Herzlichen Dank für deine tapfere Hilfe. Freu mich total über die Funktion.

Liebe Grüße und noch einen schönen Sonntag...
Maxe
Antworten

Zurück zu „Coding & Technik“