Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem: JavaScript-Funktion für onload auslagern

7 views
Skip to first unread message

ovn

unread,
Dec 21, 2005, 8:57:59 AM12/21/05
to
Hallo,

Ich habe ein Problem, das ich nicht lösen kann (keine grosse Erfahrung
in JavaScript). Ich habe einer Tabelle mit der ID = myTableID. In
head-Abschnitt meiner HTML-Seite habe ich zuerst folgendes geschrieben:

<script language="JavaScript" type="text/javascript">
<!--
document.onload = function foo()
{
.......
var table = document.getElementById("myTableID");
......
}
//-->
</script>

Die Variable table ist nicht null und die Funktion foo funktionierte
wunderbar. Dann habe ich die Funktion foo mit einem Parameter versehen,
der an getElementById übergeben wird, und in eine js-Datei
ausgelagert. Der Aufruf sieht dann folgendermaßen aus:

<script language="JavaScript" type="text/javascript">
<!--
document.onload = foo("myTableID");
//-->
</script>

Ich bekomme nun einen Fehler, da die Variable table null ist ! D.h. es
wird keine Tabelle gefunden, weil die Seite vermutlich noch nicht
komplett geladen wurde. Hat jemand vielleicht eine Idee, wie ich doch
die Funktion fehlerfrei auslagern kann ?

Ich danke im voraus.

J. Strübig

unread,
Dec 21, 2005, 9:13:36 AM12/21/05
to
ovn wrote:
>
> Hallo,
>
> Ich habe ein Problem, das ich nicht lösen kann (keine grosse Erfahrung
> in JavaScript). Ich habe einer Tabelle mit der ID = myTableID. In
> head-Abschnitt meiner HTML-Seite habe ich zuerst folgendes geschrieben:
>
> <script language="JavaScript" type="text/javascript">
> <!--
> document.onload = function foo()
> {
> .......
> var table = document.getElementById("myTableID");
> ......
> }
> //-->
> </script>
>
> Die Variable table ist nicht null und die Funktion foo funktionierte
> wunderbar. Dann habe ich die Funktion foo mit einem Parameter versehen,
> der an getElementById übergeben wird, und in eine js-Datei
> ausgelagert. Der Aufruf sieht dann folgendermaßen aus:
>
> <script language="JavaScript" type="text/javascript">
> <!--
> document.onload = foo("myTableID");
> //-->
> </script>

Du rufst hier die Funktion unmittelbar auf und möchtest den Rückgabewert
der Funktion als Referenz auf den onload Handler hinterlassen. Das geht
nicht.

Du brauchst eine Funktionsreferenz, der onload Handler gehört zum
Fenster nicht zum Dokument (auch wenn der inline Aufruf anderes
suggeriert).

<script type="text/javascript">

window.onload = function()
{
foo("myTableID");
};
</script>


Struppi.

ovn

unread,
Dec 21, 2005, 10:03:48 AM12/21/05
to
Hallo,

Tausend Dank ! Es hat geklappt.

0 new messages