Thomas Schmieder: Im Original gehts, im Nachbau nicht

Hallo Alle,
hallo Christoph,

Ich habe da heute was gebastelt, das in der einen Version bei Netscape geht (die Farbe zumindest) und in der anderen nicht.
Dabei kann ich keinen relavanten Unterschied finden. Habe auch schon nach vergessenen Klammern oder Semis gesucht. Irgendwie bin ich blind heute Abend.

Die Version die geht:

<html>
<head>
  <title>Tabellen-Spiele</title>

<script language="JavaScript" type="text/javascript">
  <!--
  function wxlBgCol(id,farbe)
  {
     if (document.all)
        document.all[id].style.backgroundColor=farbe;
     else
        if (document.getElementById)
         document.getElementById(id).style.backgroundColor=farbe;
        else
           if (document.layers)
              document.layers[id].bgColor=farbe;
  }

function getText(id)
  {
     if (document.all)
     {
       alert(document.all[id].innerText);
    if (document.all[id].innerText=='ganz neuer Text')
        document.all[id].innerText='noch ein anderer Text';
    else
        document.all[id].innerText='ganz neuer Text';
  }
  else
        if (document.getElementById)
         alert(document.getElementById(id).innerText);
        else
           if (document.layers)
              alert(document.layers[id].innerText);
  }
  //-->
  </script>

</head>
<body>

<table border="1">
<tr>
<td id="Zelle1" style="position:relative" bgcolor="white">
   <a href="javascript:void(0)"
       onMouseOver="wxlBgCol('Zelle1','maroon')"
       onMouseOut="wxlBgCol('Zelle1','khaki')">viel Holz<br> </a>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td id="Zelle4" style="position:relative" bgcolor="white">
    <a href="javascript:void(0)"
       onMouseOver="wxlBgCol('Zelle4','seashell')"
       onMouseOut="wxlBgCol('Zelle4','black')">wenig Holz<br> </a>
</td>
</tr>
</table>

<form action="">
   <input type="button" value="Farbe 1" onClick="wxlBgCol('Zelle1','#FF0000')"><br>
   <input type="button" value="Text 1" onClick="getText('Zelle1')">
<form>
</body>
</html>

Nun die Version, die immer einen JavaScriptError auslöst bei NS

<html>
<head>
  <title>Tabellen-Spiele</title>

<script language="JavaScript" type="text/javascript">
  <!--
  function wxlBgCol(id,farbe)
  {
     if (document.all)
        document.all[id].style.backgroundColor=farbe;
     else
        if (document.getElementById)
          document.getElementById(id).style.backgroundColor=farbe;
        else
           if (document.layers)
              document.layers[id].bgColor=farbe;
  }

function getText(id)
  {
     if (document.all)
     {
       alert(document.all[id].innerText);
    if (document.all[id].innerText=='ganz neuer Text')
        document.all[id].innerText='noch ein anderer Text';
    else
        document.all[id].innerText='ganz neuer Text';
  }
  else
        if (document.getElementById)
         alert(document.getElementById(id).innerText);
        else
           if (document.layers)
              alert(document.layers[id].innerText);
  }
  //-->
  </script>

</head>

<body>
<table border="1">
  <tr>
     <td id="Zelle1" style="postion:relative" bgcolor="white">
    Text der ersten Zelle
  </td>
     <td id="Zelle2">
    Text der zweiten Zelle
  </td>
  </tr>

<tr>
     <td id="Zelle3">
    Text der dritten Zelle
  </td>
     <td id="Zelle4">
    Text der vierten Zelle
  </td>
  </tr>
</table>

<form action="">
  <input type="button" value="Zelle 1" onClick="getText('Zelle1')">
  <input type="button" value="Zelle 2" onClick="getText('Zelle2')">
  <input type="button" value="Zelle 3" onClick="getText('Zelle3')">
  <input type="button" value="Zelle 4" onClick="getText('Zelle4')">
  <br>
  <input type="button" value="Farbe 1" onClick="wxlBgCol('Zelle1','#FF0000')">
  <input type="button" value="Farbe 2" onClick="wxlBgCol('Zelle1','#00FF00')">
  <input type="button" value="Farbe 3" onClick="wxlBgCol('Zelle1','#0000FF')">
  <input type="button" value="Farbe 4" onClick="wxlBgCol('Zelle1','#777777')">
</form>
</body>
</html>

Wo ist denn DA der Fehler?

Außerdem wüßte ich gerne, ob es bei NS auch einen innerText gibt.

Gruß

Tom

  1. hi,

    Ich habe da heute was gebastelt, das in der einen Version bei Netscape geht (die Farbe zumindest) und in der anderen nicht.

    Nun, ich weiß nicht, welche Netscape-Version du benutzt. Ich habe NS6 und NS7 zur Verfügung sowie mozilla. _Alle_ zeigen denselben Fehler, der darauf beruhen dürfte, daß Netscape mit "InnerText" Probleme hat - siehe http://selfhtml.teamone.de/javascript/objekte/all.htm#inner_text
    Im übrigen bekomme ich keine Fehlermeldung, sondern es wird mir einfach ein "undefined" angezeigt. In der Javascript-Konsole steht dann die Script-Zeile, die Netscape nicht versteht.

    Dabei kann ich keinen relavanten Unterschied finden.

    Weil keiner besteht. Beide sind gleich fehlerhaft.

    Habe auch schon nach vergessenen Klammern oder Semis gesucht.

    gute Idee. Du gehst sehr sparsam mit Klammern um, was komplizierteren if/else-Abfragen durchaus ungelegen kommen.

    Christoph S.

    1. Danke Chriostoph,

      warst also doch noch wach.

      Aber gefunden hast Du auch nix, oder?

      Dass der Teil mit innerText nich funktioniert bei NS ist mir klar. Da tut sich ab NS 6 erst was. Aber die Farben müssten trotzdem bei beiden Scriptversionen funktionieren. Das versthe ich nicht. Die beiden Scriptversionen unterscheiden sich da eigentlich nicht.

      Irgendwo habe ich da ein Zeichen drin, dass nicht reingehört.

      Gruß

      Tom

      1. hi,

        Dass der Teil mit innerText nich funktioniert bei NS ist mir klar. Da tut sich ab NS 6 erst was. Aber die Farben müssten trotzdem bei beiden Scriptversionen funktionieren.

        Das tun sie auch  -  bei beiden. Der Texteffekt funktioniert nicht. Das mit dem Farbwechsel funktioniert.

        Christoph S.

  2. hallo Tom!

    Hallo Alle,
    hallo Christoph,

    Ich habe da heute was gebastelt, das in der einen Version bei Netscape geht (die Farbe zumindest) und in der anderen nicht.
    Dabei kann ich keinen relavanten Unterschied finden. Habe auch schon nach vergessenen Klammern oder Semis gesucht. Irgendwie bin ich blind heute Abend.

    Nun die Version, die immer einen JavaScriptError auslöst bei NS

    <td id="Zelle1" style="postion:relative" bgcolor="white">

    Wo ist denn DA der Fehler?

    versuch´s mal mit position statt postion...

    Gruß,
    Reni

    1. Hallo Reni,

      Du bist ein Schatz.

      Es war schon spät gestern und je später es wurde, desto bliner wurde ich. Konnt ka nur so ein dämlicher *äh männlicher* Fehler sein.

      Nun weiß ich wenigstens, dass man bei Netscape die Style-Angabe benötigt, während M$ auch ohne auskommt.

      Gruß

      Tom