Funktion in Html Tag ausführen

T

TobiNeu

Hi
ich werde gerade verrückt.
Ich habe in meinem Html-Code eine Stelle:

Code:
<!-- $IF idExist -->
      ...
<!-- $ELSE -->
     <div id="loadFunction"></div> 
     <!-- hier hätte ich gerne einen tag der eine javascript funktion auslöst -->
<!-- $ENDIF -->

In Worten ich habe in meinem Html Bereich einen Teil der nicht immer geladen werden soll sondern nur wenn die Abfrage stimmt. So weit so gut..
Mein Problem ist das ich gern eine Javascript Funktion ausführen würde
habs so versucht:
<div id="loadFunction" onload="test();"></div>
aber leider funktioniert die onload nur im body tag

Mein jetziger Ansatz wäre über nen EventListener dazu hab ich diese Zeile eingefügt:
document.getElementById("loadFunction").addEventListener("load", test, false);

geht leider auch nicht.

Hat jemand ne Idee ?

prototype hät ich noch zur Verfügung

Wäre über jede Hilfe dankbar

Grüße
 
Hallo,

das onLoad-Event gibt es nur beim Body und beim Frameset.
HTML:
...

  <body onLoad="test()">
  ...
  </body>
</html>

Und in der test()-Funktion müsstest du deine Bedingung abfragen.
 
Danke für die schnelle Antwort aber das will ich nicht.

Ich will nicht den body-Tag verwenden.
Die javascript-Funktion muss genau an dieser Stelle aufgerufen werden.
Die Bedingung kann ich nicht verschieben
 
Ok, ich hatte die andere Möglichkeit vergessen. Du kannst JavaScript-Code einfach in den Body-Teil schreiben und er wird ausgeführt:
HTML:
<body>
...
  <div id="myDiv">
    <script type="text/javascript">
      alert("ES KLAPPT!");
    </script>
    </div>
</body>
Ich würde dir bei längeren Bedingungen und Befehlen empfehlen, eine Funktion aufzurufen, die du vorher im HEAD-Tag definiert hast.
 
ok vielen dank,
das hatte ich auch shcon probiert. Mit alert wars kein Problem
aber meine Funktion die ich im unteren script Bereich geschrieben hab bekomm ich irgendwie nicht ausgeführt.

<body>
...
<div id="myDiv">
<script type="text/javascript">
getChilds();
</script>
</div>
...
<script type="text/javascript">
function getChilds(){
...
}
</script>

</body>
 
Der Browser weiß ja von dieser Funktion nichts, da sie erst unten definiert ist. Hier hast du mal einen vollständigen Code:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
               "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title></title>
    <script type="text/javascript">
    function GetChilds()
    {
      // Mach was
    }
    </script>
  </head>
  <body>
    <div id="myDiv">
      <script type="text/javascript">
        GetChilds();  // Kein Zugriff auf "myDiv2", da noch nicht definiert!
      </script>
    </div>
    <div id="myDiv2"></div>
  </body>
</html>

Achtung: Du darfst in der Funktion nicht auf Elemente zugreifen, die noch nicht definiert sind (siehe oben)!
 
Ok danke.

Ich denke so komm ich leider nicht zum Ziel, da ich auf Tags zugreifen muss.
Um bisschen Licht ins dunkle zu bringen es handelt sich hier um ne Baumstruktur die sich rekursiv aufbaut.
D.h. ich erstelle für jeden Knoten immer ein div tag mit dem seinem key als id
und lade in diesen div tag dann die nächste Ebene mit den dazugehörigen Knoten, usw.

Funktioniert auch alles mit onclick aber nun solls halt auch ohne Klicks geöffnet werden.
Aus diesem Grund muss ich auf die Tags zugreifen können.

Ich denke der richtige Weg geht schon in die Richtung eventHandler.
Freu mich über jede weitere Vorschläge
Danke

Bin nun erstmal 3Stunden im Sport und dann schau ich wieder rein :)
 
Was hast du denn eigentlich gegen onLoad im Body?
Es wäre vllt. hilfreich, wenn du den Code mit onClick postest..
 
Ich kann die Funktion nicht im body aufrufen, da die Klasse(Datei , ka wie man das bei javascript nennt) zum einen für das manuelle öffnen des baumes verantwortlich ist und zum anderen für das automatische öffnen eines pfades.

Wie gesagt die onload funktion soll wirklich nur dann aufgerufen werden wenn die if bedienung vorher erfüllt wird .

Den Code kann ich leider nicht veröffentlichen.
 
Und so?

HTML:
  <script type="text/javascript">
  run_function = false;
  function do_something(){
    if( run_function)
    alert("foo");
  }
  </script>
</head>
<body onload="do_something();">
<div>
  <script type="text/javascript">run_funtion = true;
  </script>
</div>
</body>

Ist aber ungetestet ;)
 

Neue Beiträge

Zurück