Netscape erkennt meine globalen Variablen nicht
Sandra Martin
- javascript
guten morgen!
ich bin noch ein javascript-neuling und habe probleme mit dem netscape-verhalten. es waere schoen, wenn mir jemand helfen koennte. in der forums-archiv-suche habe ich eine abpruefung gefunden, ob eine variable definiert ist oder nicht. diese abpruefung habe ich zum testen angewendet und netscape bringt mir immer die meldung
var a waere undefiniert. ie erkennt die globale variable.
diese script habe ich zum testen verwendet:
<html>
<head>
<title>Globale Variable</title>
<script language="javascript">
<!--
alert("vor var");
var a=0;
alert("nach var");
function test(){
if (typeof(a)=="undefined")
{
alert("a ist nicht definiert");
}
else
{
alert ("a ist definiert - gut so");
}
}
-->
</script>
</head>
<body onLoad="test();">
</body>
</html>
es waere schoen wenn ihr mir helfen koennt.
vielen dank im voraus
sandra
auch guten morgen!
versuch mal so
<html>
<head>
»» <title>Globale Variable</title>
»»
<script language="javascript">
<!--
function test(){
if (a=="undefined")
{
alert("a ist nicht definiert");
»» }
»» else
»» {
»» alert ("a ist definiert - gut so");
»» }
}
-->
</script>
</head>
<body onLoad="test();">
</body>
</html>
hoffe hilf dir
stefan
Hi stefan,
Wo definierst du meine globale var a=0; ?
versuch mal so
<html>
<head>
»» <title>Globale Variable</title>
»»
<script language="javascript">
<!--
function test(){
if (a=="undefined")
{
alert("a ist nicht definiert");
»» }
»» else
»» {
»» alert ("a ist definiert - gut so");
»» }
}
-->
</script>
</head>
<body onLoad="test();">
</body>
</html>hoffe hilf dir
stefan
ups zu wenig kopiert
<html>
<head>
<title>Globale Variable</title>
<script language="javascript">
<!--
alert("vor var");
var a=0;
alert("nach var");
function test(){
if (a=="undefined")
{
alert("a ist nicht definiert");
}
else
{
alert ("a ist definiert - gut so");
}
}
-->
</script>
</head>
<body onLoad="test();">
</body>
</html>
das einzige was hier noch nicht stimmt ns ignoriert die beiden ersten alert
Hi stefan,
das einzige was hier noch nicht stimmt ns ignoriert die beiden ersten alert
weil das // vorm --> fehlt. Das scheint ja ziemlich originelle Auswirkungen (und jedesmal andere) zu haben.
Gruss,
Carsten, der javascript: in seine Adress-Zeile eingegeben hat ;)
Danke Carsten,
weil das // vorm --> fehlt. Das scheint ja ziemlich originelle Auswirkungen (und jedesmal andere) zu haben.
jetzt erkennt Netscape meine Variablen :-)
Du hast mir sehr geholfen,
Sandra
Hi Stefan,
das einzige was hier noch nicht stimmt ns ignoriert die beiden ersten alert
bei mir ignoriert er nicht nur die alert-Meldungen, sondern kennt auch die globale Variable nicht und somit kann ich deren Wert auch in weiteren Funktionen nicht benutzen.
Ich bin schon total verzweifelt :(
Danke trotzdem Sandra
Hi Sandra,
Statt:
if (typeof(a)=="undefined")
if (typeof(a)==undefined)
dann klappts.
Es geht um den _Typ_ undefined und nicht um einen _String_ mit _Inhalt_ undefined.
Wieso Netscape das nicht konvertiert (Javascript konvertiert Typen ja eigentlich sehr
grosszügig, und diese Umwandlung wäre ja sogar sinvoll) weiss ich auch nicht.
Gruss,
Carsten
Hi Carsten,
danke fuer den Tip
Statt:
if (typeof(a)=="undefined")
»» if (typeof(a)==undefined)
aber leider bekomme ich nun bei der alert(a); Ausgabe noch immer
die Meldung undefined! Warum steht da kein Wert 0 drin?
Und warum kommen die alert("vor var"); und die alert("nach var");
nicht bei Netscape?
Quelltext:
<html>
<head>
<title>Globale Variable</title>
<script language="javascript">
<!--
alert("vor var");
var a=0;
alert("nach var");
function test(){
if (typeof(a)==undefined)
{
alert("a ist nicht definiert");
}
else
{
alert ("a ist definiert - gut so");
alert (a);
}
}
-->
</script>
</head>
<body onLoad="test();">
</body>
</html>
Danke fuer die schnelle Hilfe :-)
Sandra
Hi Sandra,
sorry, aber das war blödsinn was ich eben geschrieben hatte.
Laut Doku liefert typeof einen String zurück, also genauso wie du es gemacht hattest.
ich hab mal 'n bisschen rumprobiert und folgendes geht bei mir, und zwar je
nachdem ob ich a definiere oder nicht:
<head>
<title>Globale Variable</title>
<script language="javascript">
<!--
var a=0;
alert(typeof(a));
function test()
{
if (typeof(a)=="undefined")
alert("a ist nicht definiert");
else if (typeof(a)=="number")
alert("a is Zahl");
else
alert ("???");
}
//-->
</script>
</head>
<body onLoad="test();">
</body>
</html>
den Unterschied zu deinem Code habe sehe ich noch nicht.
Gruss,
Carsten
Hi Sandra,
-->
da fehlt ein Kommenetarzeichen, also:
// -->
gib mal
javascript:
in die URL -Zeile vom Netscape ein, dann zeigt er dir ein Fenster in dem
JavaScript Error: http://plopp.de/test/typeof.htm, line 21:
syntax error.
-->
..^
drinsteht.
Gruss,
Carsten