Dirk Schäfauer: Frage an Mozilla-User (Warum geht der Code nicht?)

Hallo zusammen,

Mozilla treibt mich in den Wahnsinn :)

ich möchte per Script ein Bild austauschen, das klappt auch solange das Bild für sich auf der Seite steht. Sobald ich das Bild in einen a href packe gehts nicht mehr, warum? Ich habe sogar schon versucht dem a href einen namen zu geben und die grafik per firstChild anzusprechen aber das tut auch nicht...

Hier ist mein Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <title></title>
  <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  <script language="javascript">
    function Bildwechsel() {
      document.getElementsByName("navigation")[0].setAttribute("src", "images/testbild_a.gif")
    }
  </script>
</head>
<body onload="Bildwechsel();">
  <table cellpadding="0" cellspacing="0" border="0" id="l~01_c01_s01_s01_s01_s01" style="display:none;">
    <tr>
      <td>
        <a href="../content_l~01/l~01_c01.htm">
          <img name="navigation" src="images/testbild_p.gif" border="0"><br><br>
        </a>
      </td>
    </tr>
  </table>
</body>
</html>

Wenn ihr die Grafik einfach aus der Tabelle rausnehmt und irgendwo direkt im Body plaziert geht der Code, anders nicht, wie kann das sein? Fast alle meine Grafiken sind von irgendwelchen Tags eingeschlossen...

Vielen Dank für die Hilfe

Grüße Dirk

  1. Hier noch ein Link zu der Seite: http://www.msw.de/test

  2. Hi,

    die Zeile

    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">

    enthält eigentlich schon die Lösung: Microsoft's Produkte sind auf den IE abgestimmt - und der unterstützt im Gegensatz zu Mozilla kein DOM vom W3C, sondern hat wieder eigene Standards...

    E7

    1. Hi,

      die Zeile

      <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">

      enthält eigentlich schon die Lösung: Microsoft's Produkte sind auf den IE abgestimmt - und der unterstützt im Gegensatz zu Mozilla kein DOM vom W3C, sondern hat wieder eigene Standards...

      E7

      Also ich halte mich strikt an das DOM wie in SelfHTML beschrieben und hatte noch nie Probleme damit.

  3. Huhu Dirk

    Mozilla treibt mich in den Wahnsinn :)

    Immerhin hat er eine schöne Javascript-Konsole und zeigt da folgenden Fehler an:

    Error: document.getElementsByName("navigation")[0].firstChild.setAttribute is not a function
    Source File: http://www.msw.de/test/
    Line: 8

    Desweiteren fehlen in Deinen Script-Tags die type-Attribute.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
  4. <a href="../content_l~01/l~01_c01.htm">
              <img name="navigation" src="images/testbild_p.gif" border="0"><br><br>
            </a>

    Jetzt bin ich schon etwas schlauer ich darf meine Grafiken nicht in eine neue Zeile einrücken, die müssen direkt nach dem ahref kommen sonst erkennt Mozilla das firstChild-Attribut nicht :(

    1. Hi,

      <a href="../content_l~01/l~01_c01.htm">
                <img name="navigation" src="images/testbild_p.gif" border="0"><br><br>
              </a>

      Jetzt bin ich schon etwas schlauer ich darf meine Grafiken nicht in eine neue Zeile einrücken, die müssen direkt nach dem ahref kommen sonst erkennt Mozilla das firstChild-Attribut nicht :(

      Weil dann der Text zwischen dem <a href="..."> und dem <img ...> das firstChild ist. Sprich: der Whitespace.
      Dieser Text hat natürlich keine Attribute.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Hi,

        <a href="../content_l~01/l~01_c01.htm">
                  <img name="navigation" src="images/testbild_p.gif" border="0"><br><br>
                </a>

        Jetzt bin ich schon etwas schlauer ich darf meine Grafiken nicht in eine neue Zeile einrücken, die müssen direkt nach dem ahref kommen sonst erkennt Mozilla das firstChild-Attribut nicht :(

        Weil dann der Text zwischen dem <a href="..."> und dem <img ...> das firstChild ist. Sprich: der Whitespace.
        Dieser Text hat natürlich keine Attribute.

        cu,
        Andreas

        Jo das wars wohl :( wie soll man den auf sowas kommen? IE ist da großzügiger... ich kann doch nicht alles in einer Zeile schreiben :(

        1. Hallo,

          an diesem Problem bin ich auch schon mal fast verzweifelt. Seitdem versuche ich firstChild zu meiden. Ich gebe den Knoten eine ID und greife mit getElementByID darauf zu.

          Gruß,     Jürgen

          --
          <img src="http://www.uni-muenster.de/Physik/AP/Purwins/leute/Berkemeier/Plasmakugel.gif" border="0" alt="">
        2. Hallo Dirk,

          Jo das wars wohl :( wie soll man den auf sowas kommen?

          Wahrscheinlich nicht so ohne weiteres. Wenn man aber mit der Nase drauf
          stößt, ist es sinnig. Denn wenn der Inhalt eines Elementes aus solchen
          Dingen besteht..

          <element>
          text
          <unterelement />
          text
          </unterelement />
          text
          </element>

          .. dann muß man ja auch irgendwie auf die einzelnen Textfragmente zugreifen
          zu können. Dies tut man, indem diese als Textknoten angesehen werden. Und
          die in HTML/XML als Whitespace zählenden Zeichen zählen hier nunmal zum
          Text.

          (..) ich kann doch nicht alles in einer Zeile schreiben

          Wieso eigentlich nicht bei etwas kritischeren Dingen? Gute Texteditoren
          brechen dieses (nur) in der Ansicht dann um, so daß nerviges horizontales
          Scrollen entfällt.

          Tim

          --
          [x] Für die Einführung des Themenbereiches »Python«
  5. Moin!

    Hallo zusammen,

    Mozilla treibt mich in den Wahnsinn :)

    ich möchte per Script ein Bild austauschen, das klappt auch solange das Bild für sich auf der Seite steht. Sobald ich das Bild in einen a href packe gehts nicht mehr, warum? Ich habe sogar schon versucht dem a href einen namen zu geben und die grafik per firstChild anzusprechen aber das tut auch nicht...

    Hier ist mein Code:

    Hier ist der reparierte Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Hurra!</title>
    <meta name="GENERATOR" content="Mozilla Textarea">
       <script type="text/javascript" language="javascript">
       <!--
        function Bildwechsel() {
        document.getElementById("navigation").setAttribute("src", images/testbild_a.gif")
        }
       //->
       </script>
    </head>
    <body onload="Bildwechsel();">
       <table cellpadding="0" cellspacing="0" border="0" id="l~01_c01_s01_s01_s01_s01" style="display:block;">
    <!-- ich bezweifle ernsthaft, aber ohne nachzuschauen, daß die Tilde in der ID erlaubt ist -->
    <!-- wenn die Tabelle nicht angezeigt wird, wie willst Du dann den Effekt sehen? -->
        <tr>
           <td>
             <a href="../content_l~01/l~01_c01.htm">
             <!-- unter Unix/Linux wird die Tilde im Dateiname zu seltsamen Effekten führen -->
               <img id="navigation" src="images/testbild_p.gif" border="0"><br><br>
             </a>
           </td>
         </tr>
       </table>
     </body>
    </html>

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Moin!

      Ich reiche noch ein fehlendes '"' und einen Meta- Tag nach:

      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    2. Moin!

      Hallo zusammen,

      Mozilla treibt mich in den Wahnsinn :)

      ich möchte per Script ein Bild austauschen, das klappt auch solange das Bild für sich auf der Seite steht. Sobald ich das Bild in einen a href packe gehts nicht mehr, warum? Ich habe sogar schon versucht dem a href einen namen zu geben und die grafik per firstChild anzusprechen aber das tut auch nicht...

      Hier ist mein Code:
      Hier ist der reparierte Code:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
             "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <title>Hurra!</title>
      <meta name="GENERATOR" content="Mozilla Textarea">
         <script type="text/javascript" language="javascript">
         <!--
          function Bildwechsel() {
          document.getElementById("navigation").setAttribute("src", images/testbild_a.gif")
          }
         //->
         </script>
      </head>
      <body onload="Bildwechsel();">
         <table cellpadding="0" cellspacing="0" border="0" id="l~01_c01_s01_s01_s01_s01" style="display:block;">
      <!-- ich bezweifle ernsthaft, aber ohne nachzuschauen, daß die Tilde in der ID erlaubt ist -->
      <!-- wenn die Tabelle nicht angezeigt wird, wie willst Du dann den Effekt sehen? -->
          <tr>
             <td>
               <a href="../content_l~01/l~01_c01.htm">
               <!-- unter Unix/Linux wird die Tilde im Dateiname zu seltsamen Effekten führen -->
                 <img id="navigation" src="images/testbild_p.gif" border="0"><br><br>
               </a>
             </td>
           </tr>
         </table>
       </body>
      </html>

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      Danke fastix,

      aber dagegen wehr ich mich: <meta name="GENERATOR" content="Mozilla Textarea"> :)

      ich hatte leider ne vorherige version gepostet, I'm very sorry... natürlich muss man display auf block schalten damit man wirklich was sieht, aber daran lags nicht.

      Mit dem Tilde habe ich keine Probleme der funktioniert überall wunderbar (und kommt ja auch schliesslich von Linux/Unix) mittlerweile auch im Mozilla.

      Der Grund war tatsächlich der dass ich den Code so eingerückt habe, Mozilla sieht tatsächlich den Whitespace als firstChild, des mjuss man erst mal wissen, da wäre ich nie drauf gekommen. Ich bin nun mal einer der seinen Code immer schön brav einrückt und formatiert :) leider hat mir das hier das genick gebrochen...

      Jetzt funktioniert alles prächtig, vielen Dank für eure Hilfe!

      Grüsse Dirk