Search the FirstSpirit Knowledge Base
Ich habe einen Videokatalog, der in einem AppCenter Tab im JavaClient integriert werden soll. Die Integration ist eigentlich einfach, es gibt einen "Verwenden" Link und an den Link würde ich bei "onDocumentComplete" eine Javascript Funktion schreiben, die die ID über ein injeziertes Objekt überträgt.
Leider ist dieser Teil ser Seite mit dem Link über ein iFrame eingebunden und die Frage ist, komme ich dann dann diese Objekte über den DOM der HTML-Seite und wann komme ich da dran? Ist das iFrame schon geladen wenn das Ereignis ausgelöst wird?
Prüf doch am besten selber, ob der iFrame schon komplett geladen ist. Einfach dazu im iFrame am Ende eine Javascript-Variable setzen und diese solange beim onDicumentComplete abfragen, bis sie vorhanden ist. Dann weißt Du, das der iFrame komplett da ist.
Sicherlich kannst dafür auch jquery einsetzen, aber so ist es ein wenig schlanker denke ich.
Grüße
Marcus
Hallo Frank,
ich würde per BrowserApplication.inject bzw. execute ein Javascript einfügen, was das prüft und dann einen Callback in deinem Skript aufruft. Unter http://stackoverflow.com/questions/30005/how-do-i-fire-an-event-when-a-iframe-has-finished-loading-i... gibt es einige Javascript-Snippets die dabei helfen sollten.
Hallo Christoph,
das hört sich schon mal gut an. Ich habe jetzt noch eine Schwierigkeit bei dieser Anwendung. Der Benutzer kann verschiedene Funktionen nutzen, durch Kategorien von Videos navigieren, neue Konfigurationen von Videos anlegen usw. Irgendwann kommt er dann auf die Seiten, wo die einbindbaren Konfigurationen angezeigt werden und wo ich meine Integration platzieren muss. Diese Dialogfolge erfolgt über das iFrame, d.h. die Browserapp bekommt das gar nicht mit, das „onDocumentComplete wird nur beim erstmaligen Laden der Seite aufgerufen.
Diese Oberflächen sind ja schick aber bei der AppCenter Integration irgendwie schwierig.
Hat das schon mal jemand gemacht?
Gemacht wohl noch nicht, aber du kannst dich für den onLoad-Event des iFrames registrieren, dann kriegst du immer mit, wenn sich die location ändert.