Existenz einer Funktion prüfen
Martin Dunst
- javascript
Hallo,
Ich will in Javascript per <body onload="[...]">
die Existenz der Javascriptfunktion "foo" überprüfen und diese, sofern sie existiert, rufen.
Da es sich um eine Intranetanwendung handelt, reicht es, wenn die Überprüfung in Internet Explorer ab Version 6 sowie in Firefox ab Version 2.0 funktioniert.
In dieser (sehr umfangreichen) Intranetanwendung hat jedes body-Element ein onload-Attribut, dem ich auf der Serverseite einen Inhalt geben kann - konkret kann ich serverseitig einen String definieren, der als Inhalt in das onload-Attribut des body-Tags kopiert wird.
Folgendes habe ich (erfolglos) versucht:
<body onload="if(foo) foo();">
<body onload="if(foo) { foo(); }">
<body onload="if(window.foo) window.foo();">
<body onload="if(window.foo) { window.foo(); }">
Ist die Funktion vorhanden, dann wird sie auch gerufen.
Ist sie jedoch nicht vorhanden, so erscheint ein Javascriptfehler (Sinngemäß: "foo ist nicht definiert")
Wie kann ich abfragen, ob die Funktion vorhanden ist?
lg
Martin Dunst
hi,
Wie kann ich abfragen, ob die Funktion vorhanden ist?
Der typeof-Operator sollte weiterhelfen.
typeof eines nicht existenten Objekts wäre "undefined".
In deinem Falle solltest du aber explizit darauf prüfen, ob er "function" ist.
gruß,
wahsaga
Hallo,
Der typeof-Operator sollte weiterhelfen.
Vielen Dank, das ist es.
lg
Martin Dunst
Wie kann ich abfragen, ob die Funktion vorhanden ist?
Vielleicht so:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function foo()
{
//...
}
if (this.foo)
document.write("foo ist vorhanden. ")
else
document.write("foo ist nicht vorhanden. ")
if (this.bar)
document.write("bar ist vorhanden. ")
else
document.write("bar ist nicht vorhanden. ")
</script>
</head>
<body>
</body>
</html>
Was besseres fällt mir jetzt auch nicht ein...
Hallo,
Wie kann ich abfragen, ob die Funktion vorhanden ist?
if (window.foo) ... sollte funktionieren - wieso war das bei dir erfolglos?
Mathias