Georges: Position dynamisch veränderter Inhalte

Hi there,

vielleicht kennt jemand folgendes Problem :
Man tausche in einem JS gleich unter dem BODY-Tag über GetElementById(bla).innerHTML den Inhalt des angegebenen Tags aus und wundere sich, warum er ganz oben auf der Seite erscheint. Das JS mitten in den Quellcode zu schreiben bringt kein anderes Resultat, außerdem sollte es nur einmal im Quelltext auftauchen und über Parameter verschiedene Tags bearbeiten können.

<SCRIPT type=text/javascript defer=true>
<!--
function change(flag, loc){
  inhalt = new Array(2);
  inhalt[0] = '<tr><td height="24"><a href="javascript:change(0, '+loc+')"><img src="bg-topic-normal.gif" border=0></a></td><td></td></tr>';
  inhalt[1] = '<tr><td height="24"><a href="javascript:change(1, '+loc+')"><img src="bg-topic-active.gif" border=0></a></td><td></td></tr>';
  if (flag=="0"){document.getElementById("menupunkt"+loc).innerHTML= inhalt[1];}
  if (flag=="1"){document.getElementById("menupunkt"+loc).innerHTML= inhalt[0];}
}
//-->
</SCRIPT>

Aufruf von weiter unten :

<span id="menupunkt1" name="1">
<tr>
<td height="24"><a href="javascript:change(0, 1)"><img src="bg-topic-normal.gif" border="0"></a></td>
<td></td>
</tr>
</span>

Wenn das läuft, soll es noch erweitert werden, nur daß sich niemánd wundert, wie kompliziert man einen einfachen Bildchentausch realisieren kann ;-)
Jemand eine Idee ?
Danke im voraus,
Georges

  1. Hallo,

    Man tausche in einem JS gleich unter dem BODY-Tag über GetElementById(bla).innerHTML den Inhalt des angegebenen Tags aus und wundere sich, warum er ganz oben auf der Seite erscheint.

    [...]

    <SCRIPT type=text/javascript defer=true>
    <!--
    function change(flag, loc){
      inhalt = new Array(2);
      inhalt[0] = '<tr><td height="24"><a href="javascript:change(0, '+loc+')"><img src="bg-topic-normal.gif" border=0></a></td><td></td></tr>';
      inhalt[1] = '<tr><td height="24"><a href="javascript:change(1, '+loc+')"><img src="bg-topic-active.gif" border=0></a></td><td></td></tr>';
      if (flag=="0"){document.getElementById("menupunkt"+loc).innerHTML= inhalt[1];}
      if (flag=="1"){document.getElementById("menupunkt"+loc).innerHTML= inhalt[0];}
    }
    //-->
    </SCRIPT>

    Aufruf von weiter unten :

    <span id="menupunkt1" name="1">
    <tr>
    <td height="24"><a href="javascript:change(0, 1)"><img src="bg-topic-normal.gif" border="0"></a></td>
    <td></td>
    </tr>
    </span>

    Das <span> darf als Inline-Element nicht zwischen <table> und <tr> eingeordnet sein, sondern in deinem Beispiel eigentlich nur innerhalb einer <td>. Alternativ könntest Du die <table> komplett in ein <div id=".."> einschließen und dessen innerHTML ändern. Beides funzt dann zumindest im Moz/NN7 und IE.

    Eine weitere Alternative leider nicht im IE: das innerHTML der <table> (also alles ab einschl. <tr>) zu ändern.

    Gruß
    Walter