Klaus: Firefox Fehler oder doch meiner?

Hallo,

ich hab eigentlich eine recht simple Seite gebastelt, die der Firefox an sich auch korrekt darstellt, aber komischerweise funktionieren die Links ganz unten nicht. Beim IE aber schon. Die anderen Links funktionieren auch beim Firefox. (Version 1.5.0.3)

Bei mir ist im FF nur das erste Zeichen anklickbar ??

Klaus

Hier ist natürlich der Quelltext:

<html>
<head>
<script language="JavaScript" type="text/javascript">

</script>
<link rel=stylesheet type="text/css" href="/styles/styles.css"><head>
<body>
<table border="0" width="1000" height="650" cellpadding="5" cellspacing="5"><tr>
<td valign="top">

<table border="0" height="74" width="1000"><tr><td style="background-image:url(images/header.jpg); background-repeat:no-repeat" align="right" valign="bottom">
<script language="JavaScript">
function jump() {
 for(i=0;i<document.sprung.schnellsprung.length;++i) {
  if(document.sprung.schnellsprung.options[i].selected == true) {
   xurl = document.sprung.schnellsprung.options[i].value;
   break;
  }
 }
 xurl = xurl.replace(/ /g,"_");
 top.location.href = xurl;
}
</script>
<form name="sprung">
<select name="schnellsprung" size=1 onChange="jump()">
<option value="#">Schnellsprung zur ...
<option value="#">---------------------
<option value="/infoboard/infoframe.php?info=Abkürzungen&link=/infoboard/abkuerzungen/abkuerzungen.php">Abkürzungen
<option value="/infoboard/infoframe.php?info=Das JK-Bilderalbum&link=/infoboard/bilderalbum/album.html">Das JK-Bilderalbum
<option value="/infoboard/infoframe.php?info=Telefonliste&link=/infoboard/telefonliste/telefon.php3">Telefonliste
<option value="/infoboard/infoframe.php?info=Wartemusik in der Telefonanlage&link=/Infoboard/Info-Musik/info-musik.html">Wartemusik in der Telefonanlage
</select></form></td></tr></table>
<table border="0" width="1000" height="25" cellpadding="0" cellspacing="4"><tr>
<td class="orientation" style="background-image:url(images/orientation.jpg); background-repeat:no-repeat">&nbsp; Sie sind hier:&nbsp;
/ Home / Infoboard / Telefonliste

</td></tr></table><table class="mainframe" width="1000" cellspacing="0" cellpadding="10"><tr><td>
<table class="maincontent" border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
 <td class="border_thick_right" width="50%" valign="top">
 <table class="tablespacing"><tr><td>
 <h2 class="subheadline">Geburtstage</h2>
 <h1 class="headline">Happy Birthday!</h1>
 </td></tr></table>
 <hr class="separator">

<div style="width:100%; height:100%; overflow:auto"><table border="0"><tr><td>
<script language="JavaScript">
function gebliste() {
 bild=window.open("", "Geburtstagsliste", "width=550,height=600,left=50,top=50,resizable=yes,scrollbars=yes");
 bild.location.href="infoboard/geburtstagsliste/geburtstagsliste.php";
}
function extrafenster(xpnr) {
 bild=window.open("", "Visitenkarte", "width=800,height=350,left=50,top=50");
 bild.location.href= "/jkgruppe/viskarte.php?pnr="+xpnr;
}
function jubilare(xpnr) {
 bild=window.open("", "Jubilare", "width=540,height=760,left=250,top=10");
 bild.location.href= "/infoboard/jubilare/jubilare.php?personalnummer="+xpnr;
}
function neue_mitarbeiter(xpnr) {
 bild=window.open("", "Neue Mitarbeiter", "width=540,height=760,left=250,top=10");
 bild.location.href= "/infoboard/jubilare/neue_mitarbeiter.php?personalnummer="+xpnr;
}
</script><br><b class=subheadline>Geburtstagsliste</b> &nbsp; (<a href="javascript:gebliste();">Monatsliste anzeigen?</a>)<br><img src="images/line.gif"><br>
Wir gratulieren allen JK-Mitarbeitern zum Geburtstag und w&uuml;nschen alles Gute f&uuml;r die Zukunft.<br><br>
<table border=0>
</table>
<br><b class=subheadline>Mitarbeiter Jubilare</b><br><img src="images/line.gif"><br>

Herzlichen Gl&uuml;ckwunsch zum Jubil&auml;um!<br>Wir w&uuml;nschen weiterhin eine gute und kooperative Zusammenarbeit.<br><br>
<table border=0>
<tr><td><a class="nodecor" href="javascript:jubilare('3621');">Karl Mustermann</a> </td><td> 10 Jahre </td><td> Eintrittsdatum:15.04.1996 </td></tr>
 <tr><td><a class="nodecor" href="javascript:jubilare('2685');">Klaus Heinz</a> </td><td> 25 Jahre </td><td> Eintrittsdatum:28.04.1981 </td></tr>

<tr><td><a class="nodecor" href="javascript:jubilare('4299');">Peter Meyer</a> </td><td> 20 Jahre </td><td> Eintrittsdatum:24.04.1986 </td></tr>
 <tr><td><a class="nodecor" href="javascript:jubilare('4420');">Erika Dauer</a> </td><td> 20 Jahre </td><td> Eintrittsdatum:05.05.1986 </td></tr>
 </table>

</td></tr></table>
 </td>

<td valign="top">
 <table class="tablespacing"><tr><td>
 <h2 class="subheadline">News</h2>
 <h1 class="headline">JK-Group news</h1>
 </td></tr></table>
 <hr class="separator">

<div style="width:100%; height:100%; overflow:auto"><table border="0"><tr><td>
 <br><br>Hier stehen dann die News etc.<br><br>
 </td></tr></table>
 <hr class="separator">
 <table border="0" cellpadding="0" cellspacing="0">
 <tr>
  <td class="border_thick_right" valign="top">
  <table class="tablespacing"><tr><td>

<h2 class="subheadline">Infos</h2>
  <h1 class="headline">JK-group Worldwide</h1>
  </td></tr></table>
  <hr class="separator">
  <img src="images/worldmap.jpg" border="0" width="269" height="185">
  </td>
  <td class="border_thick_none" valign="top" width="100%">
  <table class="tablespacing"><tr><td>

<h2 class="subheadline">Wegweiser JK-Group</h2>
  <h1 class="headline">Infoboard</h1>
  </td></tr></table>
  <hr class="separator">
  <img src="images/infoboard.jpg" border="0" width="169" height="210">
  </td>
 </tr>
 </table>

</tr>
</table>
</td></tr></table><br>
<table class="favorites" border=0 width="1000" height="25" cellspacing="0" cellpadding="0"><tr>
<td>&nbsp;<a class="linkfav" href="javascript:setfav();">Favoriten hinzufügen <img src="images/button_favadd.jpg" width="15" height="15" border="0" align="bottom"></a></td>
<td width="50%">
<a class="linkfav" href="/neu/jkgruppe/zusatzframe.php?name=MySQL-Admin&link=/neu/tools/mysqladmin/index.php" target="_top">MySQL-Admin</a>
 / <a class="linkfav" href="/neu/jkgruppe/zusatzframe.php?name=Zusatzlinks&link=http://jk-web/neu/jkgruppe/EDV/edvzuslinks.php" target="_top">Zusatzlinks</a>
 / <a class="linkfav" href="/neu/jkgruppe/zusatzframe.php?name=EDV-Aufgaben&link=http://jk-web/neu/tools/EDV-Aufgaben/edvaufgaben.html" target="_top">EDV-Aufgaben</a>

</td></tr></table>
</td></tr>
</table>
</body>
</html>

  1. Hello out there!

    Du solltest deinen Quelltext mal durch einen Validator schicken. Der sagt dir, dass

    <html>
    <head>

    davor was fehlt.

    <link rel=stylesheet type="text/css" href="/styles/styles.css"><head>
    <body>

    hier was faul ist

    <script language="JavaScript">

    hier was fehlt

    <form name="sprung">

    hier auch

    <a class="linkfav" href="/neu/jkgruppe/zusatzframe.php?name=MySQL-Admin&link=/neu/tools/mysqladmin/index.php" target="_top">MySQL-Admin</a>

    und hier was faul ist. [HTML401 §B.2.2]

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Hallo auch :-)

      Du solltest deinen Quelltext mal durch einen Validator schicken. Der sagt dir, dass

      Hab mir gedacht, dass das kommt. ;-))
      Ich arbeite gerade an einem Re-Design, bei dem die "alten" Geschichten nach und nach rausgeschmissen werden.
      Und im alten Intranet laufen die alten Sachen alle in allen Browsern.
      (Auch wenn vieles nicht konform ist)

      <link rel=stylesheet type="text/css" href="/styles/styles.css"><head>
      <body>

      hier was faul ist

      Stimmt, hier sollte eigentlich ein schließendes </head>
      stehen.

      <script language="JavaScript">

      hier was fehlt

      Jaja ;-), den Type hab ich jetzt auch angegeben, wenn's bisher auch nicht gestört hat, richtiger ist es ja :-)

      <a class="linkfav" href="/neu/jkgruppe/zusatzframe.php?name=MySQL-Admin&link=/neu/tools/mysqladmin/index.php" target="_top">MySQL-Admin</a>

      und hier was faul ist.

      Das ist mit Sicherheit in unsauberste Geschichte und die wird auch als nächstes rausfliegen. Dann arbeite ich nur noch mit einer einzigen PHP-Datei, die über Templates zusammengebastelt wird.
      Aber beim
      a class="linkfav" href="javascript:setfav();">Favoriten hinzufügen <img src="images/button_favadd.jpg" width="15" height="15" border="0" align="bottom"></a>
      sollte doch kein Fehler sein, oder?
      Und dort zeigt er mir nur den ersten Buchstaben als Link an.

      Klaus

      1. Hello out there!

        Aber beim
        a class="linkfav" href="javascript:setfav();">Favoriten hinzufügen <img src="images/button_favadd.jpg" width="15" height="15" border="0" align="bottom"></a>
        sollte doch kein Fehler sein, oder?

        Doch, '<' fehlt. ;-)

        Ich sehe auch das JavaScript-Pseudoprotokoll nebst JavaScript-Anweisung als Wert des href-Attributs als Fehler an.

        Und ich sehe es auch als Fehler an, einen Link anzubieten, der nicht zu einer anderen Ressource führt (wie es der Nutzer erwartet), sondern wo eine Aktion ausgeführt wird. Für letzteres sind Buttons da:

        <button onclick="[code lang=javascript]setfav()">Favoriten hinzufügen <img src="images/button_favadd.jpg" width="15" height="15" alt=""></button>[/code]

        Und für Darstellungsangaben ist CSS da. Das fehlende alt-Attribut hatte mein Bloßes-Auge-Validator anfangs glatt übersehen.

        Und dort zeigt er mir nur den ersten Buchstaben als Link an.

        Komischer Effekt. Weiß nicht, woher der kommt. Lohnt es sich, darüber nachzudenken?

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
        1. Hallo,

          Aber beim
          a class="linkfav" href="javascript:setfav();">Favoriten hinzufügen <img src="images/button_favadd.jpg" width="15" height="15" border="0" align="bottom"></a>
          sollte doch kein Fehler sein, oder?

          Doch, '<' fehlt. ;-)

          ok.... das war jetzt mein Copy&Paste-Fehler hier rein. ;-)

          Ich sehe auch das JavaScript-Pseudoprotokoll nebst JavaScript-Anweisung als Wert des href-Attributs als Fehler an.

          Ich nicht ;-)

          Und ich sehe es auch als Fehler an, einen Link anzubieten, der nicht zu einer anderen Ressource führt (wie es der Nutzer erwartet), sondern wo eine Aktion ausgeführt wird. Für letzteres sind Buttons da:

          Ich denke, dass der Benutzer bei einem Link erwartet, dass eine Aktion ausgeführt wird. Aber das ist eher philosophisch ;-)

          <button onclick="[code lang=javascript]setfav()">Favoriten hinzufügen <img src="images/button_favadd.jpg" width="15" height="15" alt=""></button>[/code]

          Und für Darstellungsangaben ist CSS da. Das fehlende alt-Attribut hatte mein Bloßes-Auge-Validator anfangs glatt übersehen.

          Der Link ist ja mit CSS formatiert. den ALT-Tag lass ich immer weg, wenn er keine zusätzliche Hilfe bringt. Einen Alt-Tag mit "Favoriten hinzufügen" einzufügen ist einfach nur mehr Schreibarbeit für mich.

          Und dort zeigt er mir nur den ersten Buchstaben als Link an.

          Komischer Effekt. Weiß nicht, woher der kommt. Lohnt es sich, darüber nachzudenken?

          Genau diesen Effekt hab ich übrigens auch mit Deinem Button nicht wegbekommen. Da war dann auch nur der vorderste Rand bzw. das erste Zeichen des Buttons anklickbar.
          ???

          Klaus

          1. Hello out there!

            Ich denke, dass der Benutzer bei einem Link erwartet, dass eine Aktion ausgeführt wird.

            Leite, die sich mit Usability befassen, sagen etwas anderes.

            den ALT-Tag lass ich immer weg, wenn er keine zusätzliche Hilfe bringt.

            HTML _verlangt_ ein alt-Attbut bei jedem img-Element.

            See ya up the road,
            Gunnar

            --
            “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
            1. Hallo,

              Ich denke, dass der Benutzer bei einem Link erwartet, dass eine Aktion ausgeführt wird.

              Leite, die sich mit Usability befassen, sagen etwas anderes.

              Wer mit dem Strom schwimmt, ist oft schon tot! ;-))

              den ALT-Tag lass ich immer weg, wenn er keine zusätzliche Hilfe bringt.

              HTML _verlangt_ ein alt-Attbut bei jedem img-Element.

              Schön, Du hast Deinen Alt-Tag bekommen, aber wie vermutet, ändert es nichts am Problem.

              Ich wollte jetzt auch anfangen und gemäß Validator nach und nach die Fehler rausschmeissen (Doctype gesetzt etc...), aber der Validator hat mir irgendwie jede Menge Müll geliefert, dass zahlreiche Attribute nicht bekannt wären...
              Mit dem Validator kann ich jedenfalls leider wenig anfangen.

              Klaus

              1. Hello out there!

                Leite, die sich mit Usability befassen, sagen etwas anderes.
                Wer mit dem Strom schwimmt, ist oft schon tot! ;-))

                Wer gegen den Strom schwimmt und den Vorkenntnissen und Gewohnheiten der Nutzer widersprechende Webseiten erstellt, verliert die Benutzer, geht bankrott, begeht Suizid, ist oft schon tot.

                aber der Validator hat mir irgendwie jede Menge Müll geliefert, dass zahlreiche Attribute nicht bekannt wären...

                Den Müll liefert nicht der Validator; der steht im Quelltext.

                Mit dem Validator kann ich jedenfalls leider wenig anfangen.

                Ohne noch weniger. Bei nicht validem Quelltext ist die Darstellung im Browser von dessen Fehlertoleranz abhängig; eine Fehlersuche somit schwer bis aussichtslos.

                See ya up the road,
                Gunnar

                --
                “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
                1. Hallo,

                  aber der Validator hat mir irgendwie jede Menge Müll geliefert, dass zahlreiche Attribute nicht bekannt wären...

                  Den Müll liefert nicht der Validator; der steht im Quelltext.

                  Ich kann nur leider schon mit dem vom Validator gemeldeten Fehler 1 und 2 nichts anfangen:

                  Error  Line 4 column 17: there is no attribute "LANGUAGE".
                  <script language="JavaScript" type="text/javascript">

                  Error  Line 4 column 35: there is no attribute "TYPE".
                  <script language="JavaScript" type="text/javascript">

                  Offenbar liegt das am Doctype. Welchen Doctype sollte ich denn idealerweise benutzen, wenn es eine php-Datei ist, die validen HTML-Code erzeugen soll?

                  Klaus

                  1. Hallo,

                    ich hab gerade mit verschiedenen Doctypes rumgespielt und festgestellt, dass ich das Link-Anzeige-Problem immer dann habe, wenn der Browser in den Quirks-Mode geht. Wähle ich einen anderen Doctype (z.B. Standardkonform) werden die Links korrekt dargestellt.

                    Mal abgesehen davon, dass sich Tabellen-Inhalte bei unterschiedlichen Doctypes plötzlich verschieben.

                    Bisher habe ich aber keinen Doctype gefunden, der dem Validator gepasst hätte. Ich erhalte immer zig Fehler, dass ich bestimmte Attribute oder auch bestimmte Tags nicht verwenden dürfte.

                    Welchen Doctype kann ich denn schlicht benutzen, wenn ich mich in der Auswahl der Tags und Attribute etc. nicht einschränken möchte?

                    Klaus

                    1. Hallo,

                      ich hab gerade mit verschiedenen Doctypes rumgespielt und festgestellt, dass ich das Link-Anzeige-Problem immer dann habe, wenn der Browser in den Quirks-Mode geht. Wähle ich einen anderen Doctype (z.B. Standardkonform) werden die Links korrekt dargestellt.

                      Welchen Doctype kann ich denn schlicht benutzen, wenn ich mich in der Auswahl der Tags und Attribute etc. nicht einschränken möchte?

                      beim IE solltest du noch auf folgende problematik achten: aus irgendeinem hirnrissigen grund schaltet selbige pestbeule automatisch in den Quirks-Mode, wenn der doctype NICHT in einer, sondern - z.b. für bessere lesbarkeit - auf zwei zeilen verteilt ist.

                      also, Doctype-Deklarationen immer KOMPLETT in der OBERSTEN zeile des dokuments reinpacken bzw. in deinem fall ausspucken lassen!

                      das dürfte sicherlich einiges an mist reduzieren, hoff ich mal ;)
                      cu, w0lf.

                      1. beim IE solltest du noch auf folgende problematik achten: aus irgendeinem hirnrissigen grund schaltet selbige pestbeule automatisch in den Quirks-Mode, wenn der doctype NICHT in einer, sondern - z.b. für bessere lesbarkeit - auf zwei zeilen verteilt ist.

                        Das stimmt soweit ich weiß nicht, er schaltet nur in den Quirksmode, wenn der DOCTYPE nicht in der ersten Zeile anfängt.

                        Struppi.

                        --
                        Javascript ist toll (Perl auch!)
                  2. Hello out there!

                    Error  Line 4 column 17: there is no attribute "LANGUAGE".
                    <script language="JavaScript" type="text/javascript">

                    In der Tarnsitional-Variante gibt es das language-Attribut fürs script-Element, es ist aber überflüssig, deshalb gibt’s das in der Strict-Variante nicht.

                    Error  Line 4 column 35: there is no attribute "TYPE".
                    <script language="JavaScript" type="text/javascript">

                    Wie du die Fehlermeldung bekommenhaben willst, ist mir schleierhaft.

                    Welchen Doctype sollte ich denn idealerweise benutzen,

                    Den, nach dessen Regeln du dich halten zu gedenkst. Wenn du missbilligte HTML-Attribute statt CSS zu Darstellungsangaben benutzt, Text oder Inline-Elemente direkt in body oder form notierst, dann muss es Transitional sein. Machst du es richtig[tm], dann Strict.

                    Notierst du XML-konform, dann XHTML 1.0, sonst HTML 4.01.

                    Siehe auch Dokumenttyp-Deklaration in SELFHTML.

                    wenn es eine php-Datei ist, die validen HTML-Code erzeugen soll?

                    PHP hat damit gar nichts zu tun. Was zählt, ist der HTML-Quelltext, der zum Client ausgeliefert wird.

                    See ya up the road,
                    Gunnar

                    --
                    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
              2. Hallo,

                Ich denke, dass der Benutzer bei einem Link erwartet, dass eine Aktion ausgeführt wird.

                Leite, die sich mit Usability befassen, sagen etwas anderes.

                Wer mit dem Strom schwimmt, ist oft schon tot! ;-))

                oh ja. ich fühl mich schon so zombiehaft ... alles rottet, alles modert ...

                den ALT-Tag lass ich immer weg, wenn er keine zusätzliche Hilfe bringt.
                HTML _verlangt_ ein alt-Attbut bei jedem img-Element.

                Schön, Du hast Deinen Alt-Tag bekommen, aber wie vermutet, ändert es nichts am Problem.

                ich glaube, hier liegt ein missverständnis vor: das ALT-Attribut dient als ALTernativ-Text, während das jeweilige bild geladen wird (oder nicht gefunden werden konnte), NICHT etwa als tooltip - so wie es der IE fälschlicherweise darstellt. da gabs irgendwo (glaube auf spotleid.de) ne kleine diskussion zum thema, da war dann der kommentar: für den IE extra-würste backen und ein leeres title-attribut angeben, dann wird kein tooltip angezeigt und gut is (alternativ liese sich das auch mittels JavaScript entspr. korrigieren) ;)

                Ich wollte jetzt auch anfangen und gemäß Validator nach und nach die Fehler rausschmeissen (Doctype gesetzt etc...), aber der Validator hat mir irgendwie jede Menge Müll geliefert, dass zahlreiche Attribute nicht bekannt wären...

                Mit dem Validator kann ich jedenfalls leider wenig anfangen.

                evtl. stolpert er über JavaScript. alternative: als HTML 4 testen - da sind sachen wie OnMouseOver noch erlaubt - in XHTML muss man dagegen alles _klein_ schreiben.

                cu, w0lf.