iframe automatisch aktualisieren lassen

Schpringer

Mitglied
Hallo liebes Forum

Habe mir jetzt 2 Stunden die Finger wund gesucht. Ich habe ein Anliegen, welches sehr dringend ist :rolleyes:

Besucht die Site http://www.snooker-4d.ch

Im Moment führen wir ein Turnier mit Livestream und Livescore durch. Im Menu ganz unten könnt ihr auf Livestream klicken, dann zum Beispiel auf Tisch1.

So nun mein Problem:

Wie ihr feststellt lädt die Seite alle 30sek neu. Dadurch können wir den Livescore immer aktuell halten. Das Problem ist nun, dass durch die Aktualisierung der Livestream (Video) immer neu geladen wird. und dies ist sehr ungünstig, da man das Spiel ohne unterbruch verfolgen möchte.

HTML:
<META NAME="oben" CONTENT="no-cache">
<meta http-equiv="refresh" content="60">

Die Highscores sind via iframe in die Seite eingebunden. Nun mein Ziel ist es, nur die einzelnen iframes alle 30sek zu refreshen.
Ich weiss, dass ich die Zieldatei mit einem Meta Befehl versehen und somit zum Refresh bringen könnte. Das geht aber leider nicht, da die html Datei mit dem Livescore immer neu geschrieben wird und somit der Meta-Befehl verschwinden würde. Wie kann ich nun im iframe den refresh einstellen? Irgendwie klappt nichts so, wie man sich das wünscht. Oder könnte man auch die META im Header auf den iframe (sind 4 pro Seite) steuern?

Der Code:

HTML:
<iframe src="http://www.snooker-4d.ch/static/livescore_table1.html" name="Tisch 1" scrolling="no" frameborder="no" align="center" height = "160px" width = "500px">
</iframe>

Die Homepage wird mit einem Baukastensystem gemacht. Somit habe ich nicht direkten Einfluss auf den Quellcode. Nur auf den Head

Ich danke euch schonmal für eure Antworten.

Viele Grüsse

Mike
 
Zuletzt bearbeitet:

ComFreek

Mod | @comfreek
Moderator
Die Homepage wird mit einem Baukastensystem gemacht. Somit habe ich nicht direkten Einfluss auf den Quellcode. Nur auf den Head

Das könnte mit JavaScript klappen:
Javascript:
var iframe;
window.onload = function()
{
  iframe = document.getElementById("IdDesIframes");
  window.setInterval("RefreshIFrame()", 60000); // 60000 ms = 60 Sek.
}
function RefreshIFrame()
{
  iframe.location.reload();
}
(In einen Script-Tag im Head einbinden; Code ist ungetestet!)
 

Schpringer

Mitglied
Hallo und vielen Dank für deine Antwort

Stimmt das so?

HTML:
<script type="javascript">
var iframe;
window.onload = function()
{
  iframe = document.getElementById("Tisch1");
  window.setInterval("RefreshIFrame()", 3000); // 60000 ms = 60 Sek.
}
function RefreshIFrame()
{
  iframe.location.reload();
}
</script>
 
Zuletzt bearbeitet:

ComFreek

Mod | @comfreek
Moderator
Alles stimmt, außer die Angabe des type-Attributs. Es muss so heißen:
HTML:
<script type="text/javascript">

Außerdem würde ich den Kommentar ändern, da du ja den Intervall auf 3 Sekunden gestellt hast ;)
 

Schpringer

Mitglied
Das hatte ich zuerst auch, aber es passiert nichts.

Die 3 Sekunden habe ich zum testen so eingestellt. Anstatt immer 60sek zu warten, obs funktioniert ;)

Aber eben. Es passiert nichts.. :(
 

ComFreek

Mod | @comfreek
Moderator
Kannst du vielleicht den ganzen Code posten oder eine URL geben?
Eventuell kannst du auch die Fehlerkonsole des Browsers öffnen.
 

Schpringer

Mitglied
Natürlich :)

Also im Head steht nun:

HTML:
<META NAME="oben" CONTENT="no-cache">
<script type="text/javascript">
var iframe;
window.onload = function()
{
  iframe = document.getElementById("Tisch1");
  window.setInterval("RefreshIFrame()", 3000); // 60000 ms = 60 Sek.
}
function RefreshIFrame()
{
  iframe.location.reload();
}
</script>

Die no-cache wurde mir empfohlen, damit der Browser nichts in den Cache speichert.

Bei der Fehlerkonsole kommt tatsächlich alle 3sek (meine Zeiteinstellung) eine Fehlermeldung:

Fehler: iframe is null
Quelldatei: http://127.0.0.1:7566/livestream-summer-cup-2010/tisch-1/index.php
Zeile: 56

Sagt dir das was?

Ich bedanke mich schon mal
 

ComFreek

Mod | @comfreek
Moderator
Ja, der Fehler sagt mir was.
Das document.getElementById() liefert NULL zurück. Vielleicht existiert kein Element mit dieser ID?
 

SpiceLab

ZENmechanic
Die Attributswerte für id, idref und name dürfen keine Leerzeichen enthalten - also muß es im <iframe>-Tag richtigerweise name="Tisch1" und nicht name="Tisch 1".

HTML-Attribut-Referenz für ID, IDREF oder Name
 
Zuletzt bearbeitet:

Schpringer

Mitglied
Hmm

Ich habe hier den Code des iframe:

HTML:
<iframe src="http://www.snooker-4d.ch/static/livescore_table1.html" id="Tisch1" scrolling="no" frameborder="no" align="center" height = "160px" width = "500px">
</iframe>

unter id habe ich Tisch1 vergeben und auch im Javascript Tisch1 bei id eingegeben.

Habe ich da was übersehen? Oder muss ich gar das ganze hochladen, damit das funktioniert? Getestet habe ich es immer Lokal...