mehrere onloads

Status
Für weitere Antworten geschlossen.

Spruce

Registered +
Registriert
Juni 2008
Beiträge
107
Hi,
ich habe ein problem, ich versuche grad meine site mit nen bissle js aufzuwerten und dann bin ich auf folgendes problem gekommen
in top.php
PHP:
window.onload = function(){alert("top");}
und dann in der mail.php
PHP:
window.onload = function(){alert("mail");}
und dann wird nur mail gealert und nicht top
und wenn ich jetzt aber ne andere site aufrufe dann wird top gealert weil halt nicht nochmal auf das onload zugegriffen wird und dann habe ich folgendes probiert :
PHP:
function update_onload(name)
{
var windonload = window.onload||function(){/* */};
window.onload = function(){ name() ; windonload(); } 
}
(funtzt nicht ...)
jetzt meine frage wie kann ich das machen das immer alle ausgeführt werden ?

mfg Spruce
 
Hi,
am einfachsten ist diese Methode.
Code:
var onloadArray = new Array();
window.onload = function() {
for(expr in onloadArray) eval(onloadArray[expr]);
}

onloadArray.push('alert("hi ho!");');
onloadArray.push('alert("ho hi!");');
Dort wird Befehl für Befehl abgearbeitet. Wenn man deinen Gedankengang weitergeht, komme ich auf das
Code:
function addOnload(newFunction) {
var tmp = window.onload; 
if(typeof tmp != 'function') window.onload = newFunction;
else window.onload = function() {
tmp();
newFunction; 
}
} 

addOnload(alert("hi ho!"));
addOnload(alert("ho hi!"));

Gruß
Broken Sword
 
Zuletzt bearbeitet von einem Moderator:
ok und ich muss das window.onload = function() { irgentwo hinschreiben ?

mfg Spruce
 
gut danke broken sword
aber ich habe das jetzt so im code drinnen :
Code:
var onloadArray = new Array();
onloadArray.push('alert("hi ho!");');
onloadArray.push('alert("ho hi!");'); 
window.onload = function() {
for(expr in onloadArray) eval(onloadArray[expr]);
}
und dass funtzt nicht -.-


mfg Spruce
 
Zuletzt bearbeitet von einem Moderator:
Also mit aktuellen Fx, IE, Opera und Safari gibt es keine Schwierigkeiten. ;)

Gruß
Broken Sword
 
hmm komisch aber ich habe noch ne idee:
wäre auch nicht folgendes möglich ?
Code:
var onloads;//string
addOnload(e)
{
onloads += e+";";
}
addOnload("alert('hiho')");
addOnload("alert('hohi')");
....
am Ende des codes
eval (onloads);

mfg Spruce
 
Es gibt noch hunderte, verschiedene Möglichkeiten. Aber was ich mit meinen Post sagen wollte, ist, dass mein Code funktioniert. Ergo muss der Fehler bei dir liegen.

Wie sieht dein gesamter Code denn aus? Wie bindest du den Code in die HTML-Seite ein?

Gruß
Broken Sword
 
der folgende code ist nur rauskopiert und desegen nicht wundern wenn es nen bissle probs mit de anführungszeichen gibt die kommen von php
Code:
...
function aktualliesieren_head(){
var holz_eleh = document.getElementById('holzid2'); //id vom div
var stein_eleh = document.getElementById('steinid2');//id vom div
var eisen_eleh = document.getElementById('eisenid2');//id vom div
var jetzth = new Date().getTime();\n";
$timedif = (time() - $island->last_update)*1000;//ist egal ist nur was mit php
echo " var unterschiedh = jetzth - starth + ".$timedif." ;//das auch
var holz_neuh = Math.round(holz_akh + unterschiedh * holz_stdh / 3600000);
stein_neuh = Math.round(stein_akh + unterschiedh * stein_stdh / 3600000);
eisen_neuh = Math.round(eisen_akh + unterschiedh * eisen_stdh / 3600000);
holz_eleh.innerHTML = holz_neuh.toString();
stein_eleh.innerHTML = stein_neuh.toString();
eisen_eleh.innerHTML = eisen_neuh.toString();
}
addOnload(aktualliesieren_head);
addOnload(window.setInterval('aktualliesieren_head()',2000));
...
dann in[I][U][size=4][B] notes.js[/B][/SIZE][/U][/I]
function addOnload(newFunction) {
var tmp = window.onload; 
if(typeof tmp != 'function') window.onload = newFunction;
else window.onload = function() {
tmp();
newFunction(); //[B]B]
}
} 
function onloaded()
{
if(liesCookie('top',1)&&liesCookie('left',1))
{
showNotes(1);
var toppx = liesCookie('top');
var leftpx = liesCookie('left');
$('notes').style.left = leftpx;
$('notes').style.top = toppx;
}
}
addOnload(onloaded);
als fehler gibt der mir :(stammt von ff js-fehler-konsole)
Fehler: newFunction is not a function
Quelldatei: http://localhost/*/js/notes.js
Zeile: 13// ist die zeile in deinem code die ich markiert habe
 
Oops, sry - da war dann noch die alte Version im Zwischenspeicher @@
Einfach die () weg nehmen ;)

Gruß
Broken Sword
 
ich habe noch eine frage man muss das dann doch mit
Code:
addOnload(wasweißich());
aufrufen oder?
bei mir ist jetzt grad das prob das der immer schon bevor eig das window.onload aufgerufen wird auf die elemente zugreift ...
mfg Spruce
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten