JavaScript-Funktion vor Einbinden der externen Dateien aufrufen?

... komplette Frage anzeigen

3 Antworten


Wie kann ich nun jedoch auf JS-Funktionen zurück greifen, die erst in den später eingebundenen Dateien definiert werden? 

Logischer Weise... kannst du das nicht (direkt). Eine Alternative wäre einen Teil der Dateien im Head und einige am Ende vom Body einzubinden.

Siehe: http://t3n.de/magazin/7-tipps-fuer-schnellere-websites-turbolader-239321/ (Abschnitt 7)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von nick2097
27.03.2016, 14:15

Hallo fluffiknuffi,

Ja. So habe ich das jetzt übergangsweise auch gemacht. Aber ich hätte die JS-Dateien gerne an einer Stelle. Sollte das so nicht eigentlich über die

$( document ).ready(function() {

oder die

$(window).on('load', function(){

möglich sein, da so ja die eingebundenen Scripts vorher geladen werden und die Funktionen auch später? (siehe auch Kommentare Antwort 1)

0

Du könntest alternativ deinen Aufruf quasi zwischenspeichern und dann später über ein weiteres Scriptsnippet aufrufen:

var notificationsOnLoad = [];

function notify(message, type, animIn, animOut, delay) {
var callfn = function() {
$.growl({
message: message
}, {
type: type,
allow_dismiss: false,
label: 'Abbrechen',
className: 'btn-xs btn-inverse',
placement: {
from: 'top',
align: 'right'
},
delay: delay,
animate: {
enter: animIn,
exit: animOut
},
offset: {
x: 20,
y: 85
}
});
}

if(!window.jQuery)
notificationsOnLoad.push(callfn);
else
callfn();
}

Und später dann im Code (nach jQuery):

$(window).load(function() {
notificationsOnLoad.forEach(function(fn) { fn(); });
});
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von nick2097
28.03.2016, 10:40

Danke für deine Mühe, Sarkophator :)

Es lag nun aber doch an mir, siehe Kommentare der Antwort von
fluffiknuffi ^^

War wohl einfach zu müde oder so xD

0

Hi Nick,

das kannst du machen wenn deine Seite zum Seitenaufbau nicht umbedingt die JS libraries benötigen. Dann kannst du deine Funktionen z.B. mit dem body "onload" Event oder der jQuery $(document).load(function () {}) Funktion wenn du jQuery verwendest oder du kannst einfach deine Funktionen mit der letzten Datei aufrufen, die du einbindest. Ich hoffe das hilft.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von nick2097
26.03.2016, 20:55

Hallo MonkeyKing, danke für deine schnelle Antwort. Vermutlich meintest du die:

$( document ).ready(function() {

Das habe ich schon probiert, hat jedoch leider auch nicht funktioniert :/

1

Was möchtest Du wissen?