Rolf B: Javascript-Funktion innerhalb eines geladenen Object-Tags aufrufen?

Beitrag lesen

Hallo dedlfix,

kurzes Nachlesen der Recherche ergab die Antwort "This didn't work" vom OP dort.

Kurzes ausprobieren im eigenen Browser (Chrome 73) ergab: Funktioniert doch. Wenn man es richtig macht.

Problem scheint zu sein, dass sämtliche synchronen Scripte aus dem ins <object> geladenen HTML erst dann starten, wenn die Scripte des einbettenden HTML abgearbeitet sind. async/defer Scripte habe ich nicht betrachtet. Meine Prüfung ergab diese Reihenfolge, allerdings habe ich das nur mit Chrome 73 gemacht. Andere Browser oder andere Chrome-Versionen haben möglicherweise ein anderes Timing.

  • Head-Scripte des Main-HTML
  • Body-Scripte des Main-HTML
  • DOMContentLoaded Event des Main-DOM feuert
  • Head-Scripte des Object-HTML
  • Body-Scripte des Object-HTML
  • DOMContentLoaded Event des Object-DOM feuert - aber nur für Registrierungen, die aus einem Script des Object-DOM gemacht wurden. Eine DOMContentLoaded Registrierung im Main-HTML auf das contentDocument wird nicht beachtet.
  • load Event des contentWindow feuert
  • load Event des Main-Window feuert.

Und darum muss man, bevor man auf JavaScript-Objekte des contentWindow zugreift, abwarten, bis dessen load Event gefeuert wurde. Vorher sind sie nicht verfügbar.

Rolf

--
sumpsi - posui - clusi