björn.sippel: dynamisches Aktualisieren von Teilbereichen einer html-seite

Beitrag lesen

Hallo,

Angenommen dein Perl-Script schreibt seine Daten in eine Datei -->>wird direkt in den IFRAME geschrieben
echo '<script type="text/javascript">';
echo 'var data_1 = 12';
...
echo '</script>'

Beschäftige dich mal mit der JavaScript-Funktion setTimeout

-->>habe ich bereits

Du könntest einen unsichtbaren iframe als
-->>Kommunikationskanal mit dem Server benutzen.

-->>iframe startet das pingscript und erhält die Daten zurück

Mittels Timergesteuertem JavaScript und einer entsprechenden Parameterübergabe beinflusst du die Rückgabewerte vom Server.

-->> ich codiere bis jetzt kein PHP.
-->>Ich habe mir dein Beispiel unten angeschaut, habe jedoch
nicht ganz folgen können, welchen Einfluss die Parameter
besitzen. Mir scheint das eine PHP-Variante zu sein (?)

Beispiel (ich unterstelle, daß das iframe das Attribut name="myIframe" hat:

-->>wird die Funktion getdata() im iframe geschrieben ?

window.setTimeout("getData()",600000);

function getData() {

document.getElementsByName('myIframe').location.href="datensammler.php?datatype=3&......"

-->>wird hier "ferngesteuert ein iframe erzeugt und direkt mit einem
script (datensammmler.php) gestartet ?
Wie sieht das mit Perl aus? Speziell die Parameter sind mir nicht
geläufig.

//Der function kannst du auch Werte übergeben, die du in den URI einbauen kannst.

function machWasMitDenNeuenDaten(auch hier könnte der Server neue Daten übergeben) {
    // Zugriff: document.getElementsByName('myIframe').data_1
    // Du kannst also Serverseitig voll steuern, was diese Funktion macht.

-->>muss man hier zwingend die Werte als Javascripvariablen
erzeugen, um darauf zugreifen zu können ?
Oder kann man auch über den DOM-Baum zugreifen ?

var obj = document.getElementsByName('myIframe');
    X1 = obj.data_1;
    alert(X1);
    document.getElementById('myTableCell_row_4_col_3').innerHTML = X1;
}

ich habe ein bischen mit deinem Konstrukt herumprobiert, bin
jedoch im Aufruf stekcen geblieben.
Für einen Test bin ich von der Top-Html Seite ausgegangen und
habe versucht, auf die IFrame-Daten zuzugreifen, was jedoch
auch nach 4 Stunden herumprobieren nicht gelang.
Der Übergang in die IFRame-Datei scheint "wie vernagelt".
Referenzieren mittels window.frame.framename brachte nichts,
auch eine Reihe weiterer Möglichkeiten, die sich im Netz finden.
Lediglich das Herunterhangeln über die Nodes habe ich
nicht versucht.

Auch der Versuch, sich am DOM-Baum entlang zuhangeln
über die Javascript-Konsole brachte nicht viel.
-->>top.frame.length ->ergibt 1
-->> Funkt das noch am ehesten aus dem IFrame heraus ?

Die dazugehörigen 2 Dateien kannst Du in meinem letzten
Post zu Cybaer finden. Ich wollte das hier jetzt nicht
doppelt hineinsetzen.

Gruss,
Björn Sippel