Jan: DOM/JAVA Funktionsaufuf funktioniert nicht!

Hi,
meine erste Frage hier im Forum. Vielleicht könnt ihr mir bei folgendem Problem helfen. Warum wird der Funktionsaufruf nicht ausgeführt, wenn es ein "DOM Befehl" beinhaltet und wie bei A aufgeufen wird? Folgendes habe ich beobachtet:
Wie bekomme test()  zum laufen? ( siehe A)

<head>

<script type="text/javascript">

[SIZE="2"]function test(){
var test = document.getElementsByTagName("img")[0].src;
return test;
}

function dasgeht(){
var test = 13;
return test;
}

</script>

</head>

<body>

<script type="text/javascript">
document.write("Ergebnis:", test(), " <br>");/* A Geht nicht*/
document.write("Ergebnis:", dasgeht(), " <br>");/*B Geht*/
</script>

<p><img src="DSC04228.JPG" alt="" height="32" width="32" border="0" name="bild1"/></p>

</body>[/SIZE]

  1. Hello out there!

    [SIZE="2"]

    Nix mit „mein Quelltext ist superwichtig“ hier im Forum!

    function test(){
    var test = document.getElementsByTagName("img")[0].src;
    return test;
    }

    <script type="text/javascript">
    document.write("Ergebnis:", test(), " <br>");/* A Geht nicht*/

    Wann wird das ausgeführt?

    Die Funktion test() ruft document.getElementsByTagName("img")[0] auf. Gibt es denn (schon) ein solches Element?

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. ja gibt es schon.
      Leider wurde ein Stück des
      Quelltextes beim vorherigem Post abgeschnitten, hier ist der rest:

      <body>
      <script type="text/javascript">
      document.write("Ergebnis:", test(), " <br>");/* A Geht nicht*/
      document.write("Ergebnis:", dasgeht(), " <br>");/*B Geht*/
      </script>
      <p><img src="DSC04228.JPG" alt="" height="32" width="32" border="0" name="bild1"/></p>
      </body>

      1. Hi,

        ja gibt es schon.

        Sicher? Frag mal die Fehlerkonsole deines Browsers. Im FF zu erreichen unter "Tools" -> "JavaScript Console".

          
        
        > <body>  
        > <script type="text/javascript">  
        > document.write("Ergebnis:", test(), " <br>");/* A Geht nicht*/  
        > document.write("Ergebnis:", dasgeht(), " <br>");/*B Geht*/  
        > </script>  
        > <p><img src="DSC04228.JPG" alt="" height="32" width="32" border="0" name="bild1"/></p>  
        > </body>  
        
        

        Das Script wird noch waehrend des Ladens der Seite ausgefuehrt. Da es vor dem <img> steht kann es noch nicht darauf zugreifen.

        mfG,
        steckl

  2. [SIZE="2"]function test(){
    var test = document.getElementsByTagName("img")[0].src;

    Bevor du auf eine eigenschaft eines Objektes zugreifst solltest du immer prüfen ob es auch zu Verfügung steht.

    var img = document.getElementsByTagName("img");
    if(!img || !img[0]) return alert('Es existiert kein img Objekt');
    var test = img[0].src;

    Dann wärst du schon weiter.

    Struppi.