2016-03-24 2 views
0

Ich habe eine etwas große JS-Datei, die derzeit im Header einer HTML-Seite aufgerufen wird, aber es kann nicht ausgeführt werden, da die Elemente nicht geladen wurden, wenn das Skript aufgerufen wird. Was ist der beste Weg dies zu implementieren? Ich habe versucht,Die beste Methode, ein JavaScript-Skript aufzurufen, nachdem der HTML-Body ohne JQuery geladen wurde?

in das Skript, aber das scheint nicht zu funktionieren. Der Aufruf des Skripts in der Fußzeile oder in Inline ist keine Option, ebenso wenig wie JQuery.

+1

Haben Sie 'window.onload' versucht? – NewToJS

+0

Ich habe davon gehört, aber ich habe keine Ahnung, wie ich es umsetzen soll. Ich möchte die gesamte .js-Datei laden, nicht nur eine bestimmte Funktion aufrufen, da es Event-Handler gibt, die für die Funktion benötigt werden. Ich verstehe vielleicht, wie es funktioniert. Dies ist mein erstes Mal versuchen, JavaScript im Kopf einer Seite zu verwenden, ich habe nur Inline-Anrufe zuvor verwendet. – Spork

+0

Versuchen Sie etwas wie 'window.onload = function() {// Erstellen Sie nun das Skript-Tag und hängen Sie es an.}' Sie können so etwas zum Erstellen des Skript-Tags verwenden ... 'var tag = document.createElement ('script'); tag.src = "www.example.com/myscript.js"; var firstScriptTag = document.getElementsByTagName ('Skript') [0]; firstScriptTag.parentNode.insertBefore (tag, firstScriptTag); ' – NewToJS

Antwort

0

Treffen onload.

Das Ladeereignis wird am Ende des Dokumentladevorgangs ausgelöst. Zu diesem Zeitpunkt befinden sich alle Objekte im Dokument im DOM und alle Bilder, Skripts, Verknüpfungen und Unterrahmen sind fertig geladen.

Es gibt auch Gecko-spezifische DOM Events wie DOMContentLoaded und DOMFrameContentLoaded, die nach dem DOM abgefeuert werden für die Seite (die mit EventTarget.addEventListener() gehandhabt werden kann) aufgebaut wurde, aber warten Sie nicht für andere Ressourcen zu fertig laden.

+0

Ich bin mir nicht sicher, ob ich genau verstehe, wie man das benutzt. Im Beispiel wird keine JS-Datei referenziert. – Spork

+1

Es hängt davon ab, was Sie im Loadereignis versuchen. 'DOMContentLoaded' wartet nur darauf, dass der HTML-Code fertig geschrieben ist. 'onload' wartet darauf, dass zuerst alle Ressourcen (Bilder, Skripte usw.) heruntergeladen werden. –

+0

Ich denke, ich möchte die load() -Funktion auslösen, damit meine Event-Handler initialisiert werden, aber ich habe auch Variablen, die Elemente auf der Seite referenzieren, die offensichtlich diese Elemente nicht finden. – Spork

Verwandte Themen