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