Ändern des iframe wenn eingebundene Seite refreshed

rernanded

Erfahrenes Mitglied
Hallo
wie kann ich am besten Einfluss auf die css/den style eines iframe nehmen, wenn sich die eingebundene Seite automatisch refreshed? Alles liegt auf einem Server.

Zum Beispiel sollen sich die Werte für top: und left: ändern sobald der refresh erfolgt.

MONI

HTML:
<!DOCTYPE html>
<html>
<head>
<style>
#iframe1{
  max-width: 100%;
  position: absolute;
  top: 3%;
  left: 3%;
}
</style>
</head>
<body>
<iframe id="iframe1" src="iframe.php" width="931px" height="369px" frameborder="0" scrolling="no"></iframe>

<br /><br /><br />

...

</body>
</html>

Der Code der eingebundenen Seite (iframe.php):

PHP:
<!DOCTYPE html>
<html>
<head>
 <meta http-equiv=”refresh” content=”20" />
</head>
<body>

<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";

$connection = new mysqli($servername, $username, $password, $dbname);

if ($connection->connect_error) {
     die("Connection failed: " . $connection->connect_error);
}

$sql = "SELECT id,ts,content FROM wow ORDER BY id DESC";

$result = $connection->query($sql);

if ($result->num_rows > 0) {
 
     while($row = $result->fetch_assoc()) {
    echo "<br />";
    echo "id:<br />".$row["id"]."<br />";
    echo "ts:<br />".$row["ts"]."<br />";
    echo "url:<br />".$row["content"]."<br />";
 
    echo "<hr></hr>";

     }
} else {
     echo "Kein/e Ergebnis/se.";
}

$connection->close();
?>

</body>
</html>
 
Zuletzt bearbeitet:
Ist das noch aktuell?
Möglich ist das eigentlich schon.
Kommt aber darauf an was du machen willst.
Soll der iFrame selber eine andere Größe bekommen nach den Reload ?
Oder der Inhalt des IFrames ?
 
Da ich nicht genau weiß wie du es vorhast , weil es gebe ja 3 Wege.
1. Der iFrame sagt der Hauptseite das der Border eine neue Farbe bekommt,
Das Reload Script ist im IFrame.

2. Hauptseite lädt Infame neu und färbt den Border , Reload Script ist auf der Hauptseite.

3 Ein misch aus beiden

Ich habe mal ein Beispiel gemacht, wo iFrame und Hauptseite sich gegenseitig Texte schicken und den Style beeinflussen.
Auch sind 2 Buttons auf der Hauptseite, die den Counter im IFrame starten und stoppen.

Link zur Lösung



Es gibt bestimmt noch andere Methoden wie iFrame und Seite kommunizieren , aber das finde ich am einfachsten, gerade weil es alles auf ein Server ist.
 
Zuletzt bearbeitet:
Hey das ist doch super, genau was ich brauche. Vielen Dank. Ich teste das mal durch und melde mich wenn ich darf nochmals, falls es Probleme gibt. MONI
 
Habe ich gestestet und ist alles suppi.
Wie könnte man denn dasselbe bewirken (css props meines iframe verändern) wenn allerdings der refresh/reload in dem iframe.php (Dein Beispiel) auf einem Fremdserver stattfände?
MONI
 
Wenn der Fremdserver dir gehört , also du zugriff, darauf hast, dann könnte man da was machen.
So wie der Code jetzt ist funktioniert das mit 2 verschiedenen Server nicht.

Falls du zugriff auf den anderen Server hast ,kann man über postMessage() was machen .
Das habe ich auch noch nicht gemacht , aber soll auch irgendwie gehen.

Notfalls kann man mit Ajax die Befehle hin und herschicken, aber auch dafür brauchst du zugriff auf den Server.
 
Meinst du die Twitter IFrames ?
Dafür gibt es die APIs vom Twitter.

Das Script, was ich eben gemacht habe kann man so nicht über 2 Server laufen lassen.
Man kann nicht einfach so auf die Elemente zugreifen und erst recht nicht auf einere Function in der anderen Seite.
Mit etwas tricksen geht es doch, aber man könnte da noch ein paar Sachen ändern.
Dafür muss man aber genau wissen, was du vorhast
Zumindest kannst du so sehen, dass es auch über 2 Server geht

Link zur Lösung



Je nachdem was du vorhast , könnte man das vielleicht auch über Ajax machen .
 
Zuletzt bearbeitet:
Also alle Einzelheiten kann ich Dir nicht sagen, da ich an einem Projekt für die Firma arbeite bei der ich angestellt bin.
Die Grundidee ist, die neuesten Meldungen von Aussendienstlern, die a) angestellt sind und b) auch die die nicht angestellt sind (selbständige Vertriebler) auf einer Portalseite zusammenzuführen.

Die selbständigen Vertriebler setzen dafür ihre eigene Server ein (es gibt also viele Fremdserver).

Immer wenn was Neues gepostet wird soll das entweder farblich gekennzeichnet werden (z.B. border-color ändert sich) oder was noch besser wäre, das Neueste erscheint immer an erster Stelle/oben.

Bisher haben alle ein einheitliches php-Script erhalten bzw. alle angestellten Vertriebler hatten einen Zugriff über unseren Firmenserver(auf das script) mit dem die neusten Meldungen gepostet werden konnten. Alles also inhouse/intern, zumindest in einem geschlossenen Benutzerkreis.

Nur nebenbei: Mit dem script kann man auch noch andere Dinge erledigen. Z.B. vertrauliche Mails versenden oder auf die Kundendatenbank und die aktuellen Preislisten usw. zugreifen.

Angedacht ist nun von der Geschäftsleitung, dass ein Teil nun ev. mittel Social Media Accounts (zB von twitter) zu lösen. Damit kann man dann auch öffentlich kommunizieren, was bisher nicht geht bzw. nicht gemacht wurde.

Ich(bzw. die Vertriebsleitung) kann dann problemlos alle twitter-timelines auf einer zentralen Seite einbinden, beobachten(Marktbeobachtung) und darauf reagieren, wobei die Seite eine ziemlich lange Ladezeit braucht, da bis zu 1.300 Accounts(=timelines) platziert werden sollen.

Dann muß man um jede neue Meldung zu sehen immer alle Accounts beobachten. Besser wäre also wenn die Accounts die refreshed werden entweder farblich markiert werden oder besser noch immer an die erste Stelle rücken.
So wie das bei bundestweet.de umgesetzt wird.

Ich weiß, man kann das ev. auch mit einem Forum erledigen, das einen nicht-öffentlichen und einen öffentlichen Teil(Benutzerkreis) enthält. Nur dann ist der Vorteil von Social Media und dessen Reichweite eben futsch/nicht gegeben.

Das könnte man mittels twitter mit einer list bewerkstelligen, aber das ist nicht gewünscht. Also schlag ich mich mit der Sache rum und geh jetzt ins Bett.

MONI
 
Zuletzt bearbeitet:
Zurück