Parkuhr: Firefox Problem

Hallo, ich habe das Problem das ich mir zu Übungszwecken ein eigenes kleines Lightbox script schreiben wollte. Funktioniert auch super in opera, IE, und chrome. Jedoch will firefox nicht damit arbeiten.
Kann mir da wer auf die sprünge helfen?

Hier die HTML datei:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
<title>css test</title>  
<link href="stylesheet.css" rel="stylesheet" type="text/css" />  
<link href="lightbox.css" rel="stylesheet" type="text/css" />  
<script type="text/javascript">  
function lightbox_on(){  
lightbox.className = 'lightbox_on';  
lightbox_content.className = 'lightbox_content_on';  
}  
function lightbox_off(){  
lightbox.className = 'lightbox_off';  
lightbox_content.className = 'lightbox_content_off';  
}  
</script>  
</head>  
  
<body>  
<button onClick="javascript:lightbox_on()">Lightbox Aktivieren</button>  
<div id="lightbox" class="lightbox_off" onClick="javascript:lightbox_off()"></div>  
<div id="lightbox_content" class="lightbox_content_off">dsdsfdsf</div>  
  
  
</body>  
</html>  

Hier die Stylesheet:

/* Formatierung der Lightbox DIV - des Hintergrunds  */  
.lightbox_off{  
visibility:hidden;  
}  
.lightbox_on{  
visibility:visible;  
position:fixed;  
width:100%;  
height:100%;  
background-color:#000000; /* Hintergrundfarbe der Lightbox -> normalerweise Schwarz*/  
opacity: 0.8; /* Sichtbarkeit des Hintergrunds (0 = 0%; 0.5 = 50% ; 1 = 100%) */  
top: 0px;  
bottom: 0px;  
left:0px;  
right: 0px;  
}  
/* Formatierung der Lightbox Content DIV  */  
.lightbox_content_off{  
visibility:hidden;  
}  
.lightbox_content_on{  
position:fixed;  
width: 650px; /* breite der Box */  
height: 400px; /* höhe der Box */  
top: 50%;  
left: 50%;  
margin: -200px -325px;  /* Damit die Box mittig ist muss der 1. Wert = der halben höhe und der 2. Wert gleich der halben Breite sein */  
background-color:#FFFFFF; /* Hintergrundfarbe */  
}  
  

  1. Jedoch will firefox nicht damit arbeiten.

    Was sagt denn die Fehlerkonsole dazu?

    Kann mir da wer auf die sprünge helfen?

    Wer kann eine ordentliche Fehlerbeschreibung liefern?

  2. Moin Moin!

    Jedoch will firefox nicht damit arbeiten.

    Beschreibe den Fehler. Was erwartest Du, was passiert stattdessen?

    <button onClick="javascript:lightbox_on()">Lightbox Aktivieren</button>  
    <div id="lightbox" class="lightbox_off" onClick="javascript:lightbox_off()"></div>  
    
    

    Was macht das sinnfreie Label dort in den Event-Handlern?

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
  3. Hier der Code, so dass er läuft:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
    <title>css test</title>  
    <link href="test.css" rel="stylesheet" type="text/css" />  
    <script type="text/javascript">  
    function lightbox_on(){  
    document.getElementById("lightbox").className = 'lightbox_on';  
    document.getElementById("lightbox_content").className = 'lightbox_content_on';  
    }  
    function lightbox_off(){  
    document.getElementById("lightbox").className = 'lightbox_off';  
    document.getElementById("lightbox_content").className = 'lightbox_content_off';  
    }  
    </script>  
    </head>  
      
    <body>  
    <button onclick="lightbox_on()">Lightbox Aktivieren</button>  
    <div id="lightbox" class="lightbox_off" onclick="lightbox_off()"></div>  
    <div id="lightbox_content" class="lightbox_content_off">dsdsfdsf</div>  
      
      
    </body>  
    </html>
    

    Verändert:
    1. Die "javascript:" in den "onclick"-Events sind unnötig, also entfernt.
    2. Sollte man in JS nicht eine ID einfach wie eine definierte Variable behandeln. Dazu gibt's die Funtion(/Methode) "document.getElementById()"
    3. Sollten ALLE HTML-Attribute klein geschrieben sein. "onClick" also zu "onclick" umformuliert.

    MfG,
    Miikku

    1. Hier der Code, so dass er läuft:

      Sonst gehts dir noch gut? Das hier ist nicht GETHTML - was denkst du wohl passiert beim nächsten Problem dieser Art?

      Der OP kann es erstrecht nicht selbst lösen - was versprichst du dir davon?

      1. Sollten ALLE HTML-Attribute klein geschrieben sein. "onClick" also zu "onclick" umformuliert.

      In XHTML-Dialekten ist das keine Sache von "sollte".

      1. Hier der Code, so dass er läuft:

        Sonst gehts dir noch gut? Das hier ist nicht GETHTML - was denkst du wohl passiert beim nächsten Problem dieser Art?

        Der OP kann es erstrecht nicht selbst lösen - was versprichst du dir davon?

        Du bist aber angriffslustig o.O
        Also wenn er sich die Begründung anschaut, sollte er es doch verstehen.. wo ist dein Problem? Ich denke schon, dass er 1. nicht wieder versucht IDs als definierte Variablen zu benutzen, 2. kein "javascript:" mehr in Event-Attribute einbaut und 3. Attribute nicht mehr groß zuschreiben versuchen wird.

        1. Sollten ALLE HTML-Attribute klein geschrieben sein. "onClick" also zu "onclick" umformuliert.
          In XHTML-Dialekten ist das keine Sache von "sollte".

        Bei dem 2. Punkt hab ich auch "sollte" gesagt, obwohl das sogar noch weniger durchgeht.

        MfG,
        Miikku

        1. Du bist aber angriffslustig o.O

          Nein.

          Also wenn er sich die Begründung anschaut, sollte er es doch verstehen..

          Der OP versteht daruch aber nicht, wie er das Problem selbst Lösen kann bzw. wie man überhaupt die Ursache findet.

          Mein Hinweis auf die Fehlerkonsole wäre ausreichend gewesen, die wirft im Firefox einen ziemlich deutlichen Hinweis aus, dem man nachgehen kann. Der Hinweis von Alexander macht die Sache etwas deutlicher und hätte ebenfalls ausreicht.

          wo ist dein Problem? Ich denke schon, dass er 1. nicht wieder versucht IDs als definierte Variablen zu benutzen, 2. kein "javascript:" mehr in Event-Attribute einbaut und 3. Attribute nicht mehr groß zuschreiben versuchen wird.

          Was genau hat das Problem verursacht - ich weiß es, weißt es du?

          Bei dem 2. Punkt hab ich auch "sollte" gesagt, obwohl das sogar noch weniger durchgeht.

          Nein, aufgrund der Lesbarkeit des Codes ist getElementById() imho sehr sinnvoll - ansonsten ist nicht klar ob ein name- oder ein id-Attribut gemeint ist, wenn beides existiert ist das sogar verwirrend (bzw. für das External Interface bei Flash für den IE sogar notwendig).

          1. Du bist aber angriffslustig o.O

            Nein.

            ;)

            Also wenn er sich die Begründung anschaut, sollte er es doch verstehen..

            Der OP versteht daruch aber nicht, wie er das Problem selbst Lösen kann bzw. wie man überhaupt die Ursache findet.

            Okay... weiß ja nicht, das ist mein erstes Hilfs-Posting in diesem Forum von daher war ich jetzt nicht darauf gefasst, dass es hier nicht um HTML/CSS usw. geht, sondern um Erziehung zur Selbständigkeit. Meine "Hilfe", die hier ja nicht als solche angesehen wird, scheint hier wohl nicht gewünscht zu sein.

            Mein Hinweis auf die Fehlerkonsole wäre ausreichend gewesen, die wirft im Firefox einen ziemlich deutlichen Hinweis aus, dem man nachgehen kann. Der Hinweis von Alexander macht die Sache etwas deutlicher und hätte ebenfalls ausreicht.

            Entschuldigung, hab ich beides nicht gesehen. Drücke wohl zu selten F5.

            wo ist dein Problem? Ich denke schon, dass er 1. nicht wieder versucht IDs als definierte Variablen zu benutzen, 2. kein "javascript:" mehr in Event-Attribute einbaut und 3. Attribute nicht mehr groß zuschreiben versuchen wird.

            Was genau hat das Problem verursacht - ich weiß es, weißt es du?

            Ja ich weiß es auch. Du meinst wohl "Weiß er es?" und da muss ich zugeben bin ich mir nicht sicher, es ging nicht eindeutig aus meinem Posting hervor, aber letztlich sind alle 3 Punkte zu beachten. Welcher Fehler welche Ursachen aus welchem Grund nach sich zieht, finde ich eher nebensächlich, solange man keine Fehler macht!

            Bei dem 2. Punkt hab ich auch "sollte" gesagt, obwohl das sogar noch weniger durchgeht.

            Nein, aufgrund der Lesbarkeit des Codes ist getElementById() imho sehr sinnvoll - ansonsten ist nicht klar ob ein name- oder ein id-Attribut gemeint ist, wenn beides existiert ist das sogar verwirrend (bzw. für das External Interface bei Flash für den IE sogar notwendig).

            Anscheinend weißt DU nicht, was den Fehler verursacht hat! GENAU DAS war es nämlich! Du scheinst mein voriges Posting missverstanden zu haben. o.O

            MfG,
            Miikku

            1. Okay... weiß ja nicht, das ist mein erstes Hilfs-Posting in diesem Forum von daher war ich jetzt nicht darauf gefasst, dass es hier nicht um HTML/CSS usw. geht, sondern um Erziehung zur Selbständigkeit. Meine "Hilfe", die hier ja nicht als solche angesehen wird, scheint hier wohl nicht gewünscht zu sein.

              Hilfe ist gerne gesehen: aber sieh es aus Sicht des Fragesteller. Wenn du etwas lernen möchtest, woraus lernst du mehr?

              Ein korrigiertes Duplikat mit dem Hinweis "geht jetzt" oder eine Anleitung, wie du den Fehler findest?

              In diesem Fall ist das Problem trivial - wie man Fehler in Software sucht ist aber auch bei komplexen Problemen nicht anders: man wirft einen Blick ins Errorlog oder die Fehlerkonsole.

              Die meisten Leute die Webseiten bauen wissen das nicht - und ohne dieses essentielle Wissen werden sie sich niemals weiterentwickeln.

              Natürlich hat das etwas erzieherisches - aber ich für meinen Teil (und auch sicher viele andere) werde lieber auf Fehler hingewiesen (oder wo man diese findet) als eine fertige Lösung präsentiert zu bekommen.

              Wenn das nächste Problem des OP eine spur komplizierter und um 2 Uhr in der Früh auftritt, wird er nicht so schnell jemanden finden, der ihm seinen fehlerhaften Code fixt - wenn man in so einer Situation dann noch unter Zeitdruck ist, ist man sehr froh wenn man selbst weiß, wie man Fehler sucht und ggf. sogar löst.

              Anscheinend weißt DU nicht, was den Fehler verursacht hat! GENAU DAS war es nämlich!

              Ich hab' als erstes in die Fehlerkonsole geschaut ;)

              Du scheinst mein voriges Posting missverstanden zu haben. o.O

              Möglicherweise, ja.

    2. danke, hat geholfen!