Halihallo J.
Will sagen: Ich speichere mir den aktuellen window.onload-Event zwischen, weise dann dem window.onload eine neue function zu, in dieser frage ich ab, ob meine temp-Var eine function ist, wenn ja, führe ich sie einmal aus und führe danach meine zusätzliche Funktion aus.
Nur leider nur mit zwei Scripten. Wenn ein drittes hinzukommt, führt er das Script vom ersten nicht mehr aus.
Egal wieviele Scripte ich einbaue, immer nur die letzten beiden werden ausgeführt.
Das klingt logisch, denn:
Die temp Variable ist global. Falls zwei Scripte dieselbe Variable
benutzen, wird der Wert aus dem ersten Script überschrieben. Dein
window.onload Backtick führt also die lokal definierte
zusaetzlicheFunktionen() aus und dann den Backtick des vorher
geladenen Scriptes, aber der Backtick des erstgeladenen Scriptes
wurde ja aufgrund der gleichen Variablenbenennung überschrieben.
Lösungsansatz #1:
Versuche der temp-Variablen Script-lokalen Charakter (Scope) zu
verschaffen:
var temp=window.onload;
...
ggf. funktioniert es damit, oder...
Lösungsansatz #2:
Verwende ein "superglobales Array", indem du die Funktionsbackticks
speicherst:
Dies steht in *jedem* deiner Scripte:
if (typeof window.onloadBacktickQueue=="undefined") {
window.onloadBacktickQueue=new Array()
}
var zusaetzlicheFunktionen = function() {
// der Inhalt deiner jetztigen zusaetzlicheFunktionen()
}
window.onloadBacktickQueue.push(zusaetzlicheFunktionen);
window.onload=function() {
while (var zf=window.onloadBacktickQueue.pop()) {
zf(); // zusaetzlicheFunktionen() aller Scripte ausführen.
}
}
sollte so in der Form in etwa funktionieren, habe jetzt gerade keine
Zeit meine Vorschläge und Ideen zu testen.
Viele Grüsse
Philipp