Jan: Funktion innerhalb des Body-Tags ausführen

Hallo!

Hab folgendes Problem:

Ich sollte ein JavaScript, welches sich in einem ASP-Include befindet (einige JavaScript-Teile werden aus einer DB hergeladen) befindet, ausführen.

Das ganze ist mit Zig Includes sehr verschachtelt, aus diesem Grund muss ich das Script innerhalb des Body-Tags reinsetzen.

Somit kann ich es nicht mit "onLoad" ausführen, sollte es aber doch beim Laden der Seite ausführen.

Wie kann ich das nun machen?

Wenn ich das Script einfach ohne functions-Anweisung hinschreibe, gibt er mir nen Fehler aus. Umklammere ich es mit der Funktions-Anweisung und führe es über einen Button aus, geht es.

Das Script sieht folgendermassen aus:

<script language="JavaScript">
function ortupd() {
var frm = document.XNFORM;
for (i=0;i<frm.ORT.options.length;i++) {
if (frm.ORT.options[i].value == '<%=rs("Ort").value%>') frm.ORT.options[i].selected=true;
}
}
</script>

Das lässt sich über nen onClick problemlos ausführen. Nehme ich die Function-Anweisung weg, bekomme ich folgende Meldung:

'frm.ORT' ist Null oder kein Objekt. Es zeigt auf die erste Zeile des Scripts (also var frm = ....)

Weiß hier jemand nen Rat? Wär super!

lg, Jan

  1. hi,
    du kannst das onLoad mit einem
    setTimeout("Funktion()",1) faken,
    dann wirds nach 1ms nach dem
    laden der seite aufgerufen...
    allerdings habe ich dein problem
    auch nicht so recht verstanden..ob
    es jetzt daran liegt oder ein
    fehler im script vorliegt...
    mfg
    comunicout

    --
    fütter mein ego !
    welcome to electro-smog therapy
    1. du kannst das onLoad mit einem
      setTimeout("Funktion()",1) faken,
      dann wirds nach 1ms nach dem
      laden der seite aufgerufen...

      Per onLoad geht es leider deshalb nicht, da ich das Script nicht im HEAD-Bereich drinnen hab.
      Der Grund dafür: Einige DB-Teile werden erst nach dem Body-Tag inkludiert, welche für das Script notwendig sind.

      Das Script an sich ist lauffähig, nur weiß ich nicht, wie ich es ohne onLoad automatisch ausführen lassen kann.

      lg, Jan

      1. hi,
        das sagte ich bereits

        du kannst das onLoad mit einem
        setTimeout("Funktion()",1) faken,
        dann wirds nach 1ms nach dem
        laden der seite aufgerufen...

        !!!
        <SCRIPT language="JavaScript">
        function IchStarteAutomatisch() {
           alert("Friede");
        }
        window.setTimeout("IchStarteAutomatisch()",1)
        </SCRIPT>

        Somit wird die Funktion 1ms nach dem Laden der
        Seite aufgerufen...

        mfg
        comunicout

        --
        fütter mein ego !
        welcome to electro-smog therapy
        1. <SCRIPT language="JavaScript">

          AUA!! Warum wird das immer noch falsch gemacht?
          Richtig ist:

          <script type="text/javascript">

          Gunnar

          --
          Good results come from experience; and experience comes from bad results.
          1. hi

            <SCRIPT language="JavaScript">
            <script type="text/javascript">

            hätts komplett weglassen sollen dann wär mir
            dat nich passiert...

            Gunnar

            mfg
            comunicout

            --
            fütter mein ego !
            welcome to electro-smog therapy
      2. Hallo Jan,
         also, ich verstehe dein Problem nicht.

        <body onload="test('hallo')">

        <script  type="text/javascript">
         function test(text)
         { alert(text); }
        </script>

        <p>Etwas Text.</p>

        <script  type="text/javascript">
         alert("hallihallo");
        </script>

        </body>

        funktioniert. Die onload-Funktion wird erst aufgerufen, wenn die Seite geladen ist.

        Gruß,     Jürgen

        --
        <img src="http://www.uni-muenster.de/Physik/AP/Purwins/leute/Berkemeier/Plasmakugel.gif" border="0" alt="">
        1. Hallo!

          funktioniert. Die onload-Funktion wird erst aufgerufen, wenn die Seite geladen ist.

          Ja, ausgeführt wird es, nur ist da frm.ORT.options.length gleich "0". Und wenn ich es später per Onclick ausführe, ist ...length so lang wie ich es gerne hätte, zB. 31

          Obwohl das Script, dass den frm.ORT.option "auffüllt" zuerst ausgeführt wird, bringt mir das spätere eine Länge von 0 ;o(

          Naja, werds wohl auf nen anderen Weg probieren müssen.

          lg, Jan

  2. 'frm.ORT' ist Null oder kein Objekt. Es zeigt auf die erste Zeile des Scripts (also var frm = ....)

    Jan,
    Steht dein Script auch hinter dem XNFORM im Quelltext? Sonst ist das Objekt zur Laufzeit unbekannt.
    Gunnar

    --
    Good results come from experience; and experience comes from bad results.
    1. Steht dein Script auch hinter dem XNFORM im Quelltext? Sonst ist das Objekt zur Laufzeit unbekannt.

      Es war außerhalb des FORM-Tags, habs reingesetzt (selbst nach dem Select-Tag "ORT"), per onclick funktioniert es zum Glück immer noch *ggg* Aber wie soll ich es nun ausführen?

      lg, Jan

      1. Es war außerhalb des FORM-Tags, habs reingesetzt

        Jan,
        Nein, das glaube ich nicht. Zum Unterschied zwischen Element und Tag siehe http://selfhtml.teamone.de/html/allgemein/textauszeichnung.htm#elemente_tags und http://jendryschik.de/wsdev/einfuehrung/xhtml/syntax.html.

        Das Script muss nicht innerhalb des form-Elementes stehen. Es darf halt nur nicht davor stehen.

        Aber wie soll ich es nun ausführen?

        Na "function {" und am Ende "}" löschen.
        Gunnar

        --
        Good results come from experience; and experience comes from bad results.