2017-05-12 2 views
1

Ich habe <iframe src="some source"> und <script src="source.js"></script>laden iframe und Skript synchron

Ich möchte iframe vor script laden.

Einfache aufeinanderfolgende Einfügung in HTML funktioniert nicht (manchmal Skript wird früher als Iframe geladen).

Auch fangen iframe.onload und dynamisch das Skript hinzufügen ist nicht das, was ich will, da source.js enthält document.write und chrome Blöcke von asynchronen Skripts.

+0

Müssen Sie 'document.write' in Ihrem Skript verwenden? – freginold

+1

Es ist nicht mein Skript. Es ist ein externes Skript. –

Antwort

-2

Fügen Sie das defer Attribut an das Skript, so dass es geladen wird erst nach dem Laden der Seite:

<iframe src="some source"> 
<script defer src="source.js"></script> 

UPDATE: Für alle (wie mich), die nicht wissen, warum defer würde nicht mit einem Skript arbeiten document.write() enthalten, hier ist die Erklärung von MDN:

Hinweis: doc in aufgeschobenen oder asynchronen Skripten ignoriert werden, und Sie erhalten eine Nachricht wie "Ein Aufruf von document.write() von einem asynchron geladenen externen Skript wurde ignoriert" in der Fehlerkonsole.

+0

Es funktioniert nicht. –

+0

Funktioniert das für Skripts, die 'document.write' enthalten, gemäß den OP-Anforderungen? –

+0

Nein. Document.write ist ebenfalls blockiert. –