HTML Den Inhalt eines iFrames mit HTML oder Javascript abfragen - ist das möglich?

DJMadMax

Fleet Admiral
Registriert
Mai 2007
Beiträge
15.911
Heyho,

habe aktuell ein kleines Projekt, das wie folgt aussieht:

Über ein Webinterface (über nen .exe-Dienst, der serverseitig läuft) frage ich im Browser über IP und Port einen Druckerstatus ab, dieser zeigt mir in Frames z.B. grün, gelb und rot den Status an (z.B. "Printing" oder "Idle").

Direkt kann ich schonmal nicht viel dabei abfragen, da die Informationen alle paar Sekunden gepollt werden und nur über die IP im Browser abgerufen werden können. Also habe ich eine feste HTML-Datei erstellt mit iFrame, in welchem nun dieser Inhalt angezeigt wird.

Frage:
Ist es möglich, den Status des iFrames irgendwie spezieller abzufragen? Ich würde nebst der optischen Veränderung (Status von grün auf gelb bzw. rot) z.B. gern einen akustischen Warnton mit ausgeben lassen.

Sprich:
Wenn meine HTML-Seite erkennt, dass im iFrame (am Besten noch an Position xy) das Wort "Error" (oder der Farbwert #xxxxxx) auftaucht, dann gib bitte datei bla.wav (also Warnton) aus.

Ist sowas möglich?

Evtl. auch mit Javascript, wenn's nicht anders geht.

Vielen Dank im Voraus!

Cya, Mäxl
 
Generell kannst du dem Textfeld eine ID geben und deren Inhalt mit Javascript abfragen. Ob das aber bei nem iFrame auch geht weiß ich nicht, müsstest halt testen. Zur not machst halt eher nen Div und lädst den Inhalt per Ajax nach.
 
Mit Javascript ist alles Möglich, bis auf eins, du kannst nicht so ohne weiteres den Inhalt eines iFrames auslesen, Stichwort Same-Origin-Policy.
Wenn du das Hinbekommst, dann kannst du es in wenig Zeilen lösen.

Ich weiß nicht, wie es da aussieht mit lokal geöffneten Dateien, aber bei einer HTA sollte es gehen.
 
Hier nochmal zur Veranschaulichung:


Der Quelltext des iFrames ist natürlich für mich natürlich auch auslesbar, allerdings im Zustand des Quelltexts ansich ja nur noch statisch.

Wie kann ich dem Text im iFrame also eine ID zuweisen? Schließlich wird der komplette Inhalt des iFrames ja alle 15 Sekunden neu geladen. DORT ist also definitiv nichts "veränderbar". Es muss also ein Auslesen auf Ebene der HTML-Seite geschehen, wo lediglich über den iFrame "drübergeschaut" wird.

Da bin ich aber zu 100% auf fremde Hilfe angewiesen.

Cya, Mäxl
 
Das Problem ist, dass du von deiner 6160.html nicht auf den Quelltext des iFrames zugreifen darfst. Wobei das bei file:// vielleicht gelockert ist.
Du kannst es ja mal versuchen mit irgendwas wie
Code:
<script>
function test(){
alert(document.getElementById("Frame").document.innerHTML);
}
</script>
<button onlick="test">Test</button>
<iframe id="Frame" ...>
Da sollte dir dann der Quelltext angezeigt werden, wenn es geht.
 
Etwas umständlich aber: Könntest du nicht ein serverseitiges Script schreiben, das z.B. mit cURL deinen Druckerstatus abholt und ausgibt? Wenn selbiges Script auf derselben "Domain" läuft deine endgültige HTML-Seite, dann entfällt die Same Origin Policy und du könntest einfach mit AJAX dein Script immer wieder pollen, welches wiederum dann den Drucker nervt.
 
Zurück
Oben