Sebastian: Problem mit Ereignisüberwachung im NN

Hallo alle miteinander und einen wunderschönen guten Morgen,

ich habe nach wie vor ein Problem mit Netscape (taraa, wer hätte das gedacht?).
Ich versuche nun seit ‚ner Woche ein Script zu schreiben, mit dem man die Hintergrundfarbe einer Tabellenzeile ändern kann. Nachdem das in NN 4.7 nicht mit CSS möglich ist, habe ich eigens für diesen (meinen neuen Lieblingsbrowser) die Tabelle zerstückelt (also mehrere, aus einer Zeile bestehende Tabellen erstellt) und die einzelnen Zeilen in jeweils einen eigenen Layer gepackt. Nun wollte ich ein Java Script schreiben, mit dem ich die Hintergrundfarbe der einzelnen Layer auf  einen Click hin ändern kann. Leider scheitere ich bereits beim EventHandling. In den Tag kann ich keinen Handler einbauen und eine Ereignisüberwachung kriege ich auch nicht so recht hin. Ich habe dabei den Eindruck, dass das Ereignis irgendwie in der Tabelle hängen bleibt. Programmiere ich nämlich die Überwachung so, das man nur irgendwo in‚s Fenster zu clicken braucht  kann ich durchaus ein etwas am Bildschirm ausgeben.
Ich habe daraufhin versucht, die einzelnen Tabellenzellen in <DIV>s zu packen, um bei diesen das eintreten eines Clicks zu überprüfen, dies hat aber auch nicht zum gewünschten Ergebnis geführt(und selbst wenn, weiß ich noch nicht wie ich überprüfen soll in welcher Zeile das Ereignis stattgefunden hat).
Wie ihr seht habe ich nicht nur ein Problem, sondern gleich mehrere und hänge so ziemlich in der Luft. Wenn jemand einen Tipp hat, wie ich das eine oder andere lösen kann, wäre ich dafür sehr dankbar. Ich wäre auch schon zufrieden, wenn mir jemand sagen könnte wo man das nachlesen kann.

Ciao

Sebastian

  1. Hallo nochmal,

    habe den Fehler gefunden. Soweit so gut, ich kann das Ereignis jetzt abfangen, nur die Quelle würde ich gerne noch bestimmen können. Andernfalls müßte ich einen ziemlich umfangreichen und ziemlich dämlichen Code schreiben und das will ich eigentlich nicht.
    Laut einer OnLine Dokumentation, die ich mir von der Netscape Seite runtergeladen habe, geht dies mit der Eigenschaft target des event- Objekts. Diese sei bereits in JS 1.2 implementiert. Schade nur, das es bei mir nicht funktioniert. Weiß jemand mehr darüber?
    Vielleicht habe ich aber ja auch nur den Text falsch interpretiert. Deshalb werde ich ihn hier anführen:
    target   String representing the object to which the event was originally sent. (All events)

    Danke für Eure Mühe.

    Ciao

    Sebastian

    1. Hi sebastian.

      einer vom event aufgerufenen Funktion musst Du das event übergeben:
      function handling(moveEvent) zB, musst nur aufpassen auf reservierte Wörter

      dieses Objekt moveEvent hat dann ein paar Eigenschaften, eine davon ist target, was wiederum ein Objekt
      ist, nämlich das, wo das Ereignis herkommt.

      um den Ursprungsort zu identifizieren, gibst Du am besten dem Ursprungsobjekt einen Namen,
      also etwa einem Bild.

      und fragst so

      if(moveEvent.target.name && moveEvent.target.name=="Bildname")

      mehr dazu zB bei Doc Javascript (http://www.webreference.com/js/)
      bzw natürlich bei Netscape selbst.

      guter Artikel unter http://www.webreview.com/pub/97/07/25/coder/index.html

      Liebe Grüße, Til.

      1. Hi sebastian.

        um den Ursprungsort zu identifizieren, gibst Du am besten dem Ursprungsobjekt einen Namen,
        also etwa einem Bild.

        und fragst so

        if(moveEvent.target.name && moveEvent.target.name=="Bildname")

        mehr dazu zB bei Doc Javascript (http://www.webreference.com/js/)
        bzw natürlich bei Netscape selbst.

        guter Artikel unter http://www.webreview.com/pub/97/07/25/coder/index.html

        Liebe Grüße, Til.

        Hi Til,

        tut mir leid, aber das funktioniert bei mir auch nicht. Wenn ich den Wert von beispielsweise dem Namen oder der id eines Objektes abfrage erhalte ich immer undefined.
        Unten habe ich mal einen Versuchsquellcode angeführt. Wäre nett, wenn Du mal drüberschauen und mir sagen könntest, was ich falsch mache.

        <html>
        <head>
        </head>
        <style type="text/css">
        <!--
        .linksb { font-family: System, Courier, "Courier New"; font-size: 10pt; font-style: normal; color: #000000; text-decoration: none; text-align: left }
        .rechtsb { font-family: System, Courier, "Courier New"; font-size: 10pt; font-style: normal; color: #000000; text-decoration: none; text-align: right}
        .zentriert { font-family: System, Courier, "Courier New"; font-size: 10pt; font-style: normal; color: #000000; text-decoration: none; text-align: center}
        -->
        </style>
        <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
        <layer id="Ebene2" name="Ebene2" left="3" top="21" width="935" height="18" z-index="11" bgcolor="#CCCCCC" visibility="show">
        <table border=0 cellspacing=0>
          <tr>
            <td width="15" class="zentriert"> 
            <td width="120" class="linksb"> 
            <td width="85" class="zentriert">rtz
            <td width="110" class="linksb"> 
            <td width="70" class="zentriert"> 
            <td width="105" class="zentriert"> 
            <td width="70" class="zentriert"> 
            <td width="155" class="zentriert"> 
            <td width="35" class="rechtsb"> 
            <td width="35" class="linksb"> 
            <td width="70" class="rechtsb"> 
            <td width="15" class="zentriert"> 
            <td width="25" class="zentriert" bgcolor="#663399"> 
          </tr>
        </table>
        </layer>

        <layer id="Ebene2a" name="Ebene2a" left="3" top="21" width="935" height="18" z-index="11" bgcolor="#000080" visibility="hide">
        <table border=0 cellspacing=0>
          <tr>
            <td width="15" class="zentriert"> 
            <td width="120" class="linksb"> 
            <td width="85" class="zentriert">rtz
            <td width="110" class="linksb"> 
            <td width="70" class="zentriert"> 
            <td width="105" class="zentriert"> 
            <td width="70" class="zentriert"> 
            <td width="155" class="zentriert"> 
            <td width="35" class="rechtsb"> 
            <td width="35" class="linksb"> 
            <td width="70" class="rechtsb"> 
            <td width="15" class="zentriert"> 
            <td width="25" class="zentriert" bgcolor="#663399"> 
          </tr>
        </table>
        </layer>

        <script language="javascript">
          var zeile2 = document.layers['Ebene2'];
          var zeile2a = document.layers['Ebene2a'];

        zeile2.document.captureEvents(Event.CLICK);
          zeile2.document.onclick = markiere;

        function markiere(ereignis)
            {
            alert(ereignis.target.id);
            alert(ereignis.target.name);
            }
        </script>
        </body>
        </html>

        Danke für Deine Mühen.

        Ciao

        Sebastian