mehrere onloads


  • Spruce
  • 1220 Aufrufe 10 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mehrere onloads

    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-Quellcode

    1. window.onload = function(){alert("top");}

    und dann in der mail.php

    PHP-Quellcode

    1. 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-Quellcode

    1. function update_onload(name)
    2. {
    3. var windonload = window.onload||function(){/* */};
    4. window.onload = function(){ name() ; windonload(); }
    5. }
    (funtzt nicht ...)
    jetzt meine frage wie kann ich das machen das immer alle ausgeführt werden ?

    mfg Spruce
  • Hi,
    am einfachsten ist diese Methode.

    Quellcode

    1. var onloadArray = new Array();
    2. window.onload = function() {
    3. for(expr in onloadArray) eval(onloadArray[expr]);
    4. }
    5. onloadArray.push('alert("hi ho!");');
    6. onloadArray.push('alert("ho hi!");');

    Dort wird Befehl für Befehl abgearbeitet. Wenn man deinen Gedankengang weitergeht, komme ich auf das

    Quellcode

    1. function addOnload(newFunction) {
    2. var tmp = window.onload;
    3. if(typeof tmp != 'function') window.onload = newFunction;
    4. else window.onload = function() {
    5. tmp();
    6. newFunction;
    7. }
    8. }
    9. addOnload(alert("hi ho!"));
    10. addOnload(alert("ho hi!"));
    Alles anzeigen


    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: ladida

  • gut danke broken sword
    aber ich habe das jetzt so im code drinnen :

    Quellcode

    1. var onloadArray = new Array();
    2. onloadArray.push('alert("hi ho!");');
    3. onloadArray.push('alert("ho hi!");');
    4. window.onload = function() {
    5. for(expr in onloadArray) eval(onloadArray[expr]);
    6. }

    und dass funtzt nicht -.-


    mfg Spruce

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von 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
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • der folgende code ist nur rauskopiert und desegen nicht wundern wenn es nen bissle probs mit de anführungszeichen gibt die kommen von php

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <link rel="stylesheet" type="text/css" href="style.css">
    4. <script type="text/javascript" src="js/prototype.js"></script>
    5. <script type="text/javascript" src="js/scriptaculous.js"></script>
    6. <script type="text/javascript" src="js/notes.js"></script>
    7. ...
    8. function aktualliesieren_head(){
    9. var holz_eleh = document.getElementById('holzid2'); //id vom div
    10. var stein_eleh = document.getElementById('steinid2');//id vom div
    11. var eisen_eleh = document.getElementById('eisenid2');//id vom div
    12. var jetzth = new Date().getTime();\n";
    13. $timedif = (time() - $island->last_update)*1000;//ist egal ist nur was mit php
    14. echo " var unterschiedh = jetzth - starth + ".$timedif." ;//das auch
    15. var holz_neuh = Math.round(holz_akh + unterschiedh * holz_stdh / 3600000);
    16. stein_neuh = Math.round(stein_akh + unterschiedh * stein_stdh / 3600000);
    17. eisen_neuh = Math.round(eisen_akh + unterschiedh * eisen_stdh / 3600000);
    18. holz_eleh.innerHTML = holz_neuh.toString();
    19. stein_eleh.innerHTML = stein_neuh.toString();
    20. eisen_eleh.innerHTML = eisen_neuh.toString();
    21. }
    22. addOnload(aktualliesieren_head);
    23. addOnload(window.setInterval('aktualliesieren_head()',2000));
    24. ...
    25. dann in[I][U][size=14][B] notes.js[/B][/SIZE][/U][/I]
    26. function addOnload(newFunction) {
    27. var tmp = window.onload;
    28. if(typeof tmp != 'function') window.onload = newFunction;
    29. else window.onload = function() {
    30. tmp();
    31. newFunction(); //[B]<--[/B]
    32. }
    33. }
    34. function onloaded()
    35. {
    36. if(liesCookie('top',1)&&liesCookie('left',1))
    37. {
    38. showNotes(1);
    39. var toppx = liesCookie('top');
    40. var leftpx = liesCookie('left');
    41. $('notes').style.left = leftpx;
    42. $('notes').style.top = toppx;
    43. }
    44. }
    45. addOnload(onloaded);
    Alles anzeigen

    als fehler gibt der mir :(stammt von ff js-fehler-konsole)
    Fehler: newFunction is not a function
    Quelldatei: localhost/*/js/notes.js
    Zeile: 13// ist die zeile in deinem code die ich markiert habe
  • ich habe noch eine frage man muss das dann doch mit

    Quellcode

    1. 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

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Spruce () aus folgendem Grund: doch noch ne frage