Ist es möglich zu bestimmen, wann ein innerHTML geladen wurde? Ich bin mir nicht sicher, ob es eine synchrone Operation ist. Ich gehe davon aus, dass das "Erstellen des DOM" synchron ist, aber das Laden von Tags, Inhalten usw. ist nicht möglich.
Kurz gesagt - gibt es eine Möglichkeit, ein Ereignis zu erhalten, wenn innerHTML geladen wurde?
Danke!
Sie müssen DOM Mutation verwenden Beobachter , die derzeit nur in Chrome und Firefox funktionieren. Sie ersetzen die leistungsverzerrenden DOM-Mutationsereignisse.
Beispielcode aus HTML5Rocks:
%Vor% Hier ist die DOM4-Spezifikation .
Bitte verwenden Sie nicht die setTimeout()
Hacks. :)
Da img-Elemente, die über innerHTML hinzugefügt werden, ihr onload-Ereignis auslösen, können Sie ein kleines Bild am Ende Ihres ursprünglichen in innerHTML eingefügten Codes hinzufügen, und in ihrem onload-Ereignis könnten Sie eine Funktion aufrufen. Sie können das Bild auch dort löschen.
%Vor%src = 'data: image' Code ist hier nützlich, da kein bestimmtes Bild benötigt wird.
Ich fand diese Lösung in einer anderen Antwort, ich kann es einfach nicht finden. Ich werde diese Lösung bearbeiten, sobald ich die Referenz gefunden habe.
Wie wäre es, wenn Sie ein Container-Div erstellen und einen Onload-Event-Handler hinzufügen?
%Vor% Haben Sie versucht, das Ereignis window.onload
zu verwenden? Dieses Ereignis wird ausgelöst, wenn die gesamte Seite vollständig geladen ist und alle Inhalte wie Bilder, Skripts, innere Rahmen usw. enthalten sind.
P.S. Wenn Sie die JQuery-Bibliothek verwenden, können Sie ihren $(window).load
-Ereigniswrapper verwenden.
Ja, Sie können so etwas tun:
%Vor%Das JavaScript wird sequentiell ausgeführt und daher wird der Alarm ausgelöst, sobald Ihr innerHTML geladen wurde.
Sehen Sie sich auch das JavaScript-Ausführungsmodell
Tags und Links javascript