Robert: Netscape 4.x "layer" füllen klappt nicht.

Hallo,

ich versuche erfolglos, im Netscape 4.x ein div mit neuem Inhalt zu versorgen.
Leider klappt das aber nicht.

Folgender Code:

<table>
<tr>
    <td>írgendwas</td>
    <td><div id="blabla" style="position:relative;"><noscript>Ohne Javascript ist diese Seite nicht funktionsfähig</noscript></div></td>
</tr>
</table>

<script type="text/javascript">
function replaceElementContent(idofelement, newcontent)
{
//funktionierender Code für document.getElementById und document.all fürs Posting hier entfernt...
    if (document.layers)
    {
        alert("layers");
        if (document.layers[idofelement])
        {
            alert("layers[" + idofelement + "]");
            document.layers[idofelement].document.open();
            document.layers[idofelement].document.write(newcontent);
            document.layers[idofelement].document.close();

//selfhtml benutzt immer document.layername, also hier noch ein Versuch
            var thedoc = eval("document." + idofelement);
            alert(thedoc);  //zeigt [object Layer] an
            thedoc.open();
            thedoc.write(newcontent);
            thedoc.close();
            alert("finished");
        }
    }
}

replaceElementContent("blabla", "blubb");
</script>

führt zur Anzeige der Alerts
layers
layers[blabla]
[object Layer]
finished

Aber: der Inhalt des div in der Tabellenzeile wird nicht geändert.

Was mache ich falsch?

Danke im voraus,

Robert

  1. //funktionierender Code für document.getElementById und document.all fürs Posting hier entfernt...
        if (document.layers)
        {
            alert("layers");
            if (document.layers[idofelement])
            {
                alert("layers[" + idofelement + "]");
                document.layers[idofelement].document.open();
                document.layers[idofelement].document.write(newcontent);
                document.layers[idofelement].document.close();

    Das sollte ausreichen und funktioniert bei mir auch, bis auf den Fall, das der Layer in einem Layer steckt, oder der Layer nicht positioniert ist.

    Vielleicht kannst du mal ein Testcase irgendwo hochladen?

    Struppi.

    1. Hi,

      document.layers[idofelement].document.open();
                  document.layers[idofelement].document.write(newcontent);
                  document.layers[idofelement].document.close();
      Das sollte ausreichen und funktioniert bei mir auch, bis auf den Fall, das der Layer in einem Layer steckt, oder der Layer nicht positioniert ist.

      Das war auch meine Meinung.
      Der Layer ist positioniert (style="position:relative;").
      Es steckt nur in einer Tabelle, die direkt im body sitzt...

      Vielleicht kannst du mal ein Testcase irgendwo hochladen?

      Im Moment nicht - heute abend ja. (hab meine Zugangsdaten nicht hier)

      Trotzdem danke schonmal,

      Robert