Raik: Doctype verhindert Javascript

Hallo,

ich habe jetzt tagelang an einer extension für den firefox gearbeitet und muss jetzt feststelen, dass die nicht funktioniert, wenn eine doctype-angabe vorhanden ist.
den source gibts hier zu sehen: http://paste.phpfi.com/53857

hat jemand nen tip, woran das liegen könnte?
ohne doctype gehts und mit gibts auch keine fehlermeldungen in der javascriptkonsole des firefox.

freundl. Grüsse aus Berlin, Raik

  1. Hi,

    kann es sein, daß Firefox das Script im standardkonformen Modus einfach ignoriert, da das erforderliche type-Attribut fehlt?

    freundliche Grüße
    Ingo

    1. Hallo, Ingo!

      kann es sein, daß Firefox das Script im standardkonformen Modus einfach ignoriert, da das erforderliche type-Attribut fehlt?

      nein, das war nur zur veranschaulichung, hab da das attribut vergessen.
      in der extension steht das script wirklich in einer *.js - datei.
      und ohne doctype funktioniert es ja auch.

      freundl. Grüsse aus Berlin, Raik

      1. Hi,

        nein, das war nur zur veranschaulichung,

        eine Veranschaulichung hilft nicht.

        und ohne doctype funktioniert es ja auch.

        Das heißt es funktioniert nur dann, wenn der Browser eine erhöhte Fehlertoleranz aufweist.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hallo, Cheatah!

          nein, das war nur zur veranschaulichung,
          eine Veranschaulichung hilft nicht.

          aber auf den quellcode legst du schon wert, stimmts?
          und da ich nicht weis, an welcher stelle es liegen könnte, ist der ganze code relevant.

          und ohne doctype funktioniert es ja auch.
          Das heißt es funktioniert nur dann, wenn der Browser eine erhöhte Fehlertoleranz aufweist.

          oder dass mit dieser doctype-angabe irgend etwas zu einem fehler wird.
          nur, wie ich schon schrieb: die javascriptconsole des firefox (1.0.1) gibt trotz javascript.options.showInConsole = true und javascript.options.strict = true nichts aus.

          freundl. Grüsse aus Berlin, Raik

          1. Hallo, Cheatah!

            nein, das war nur zur veranschaulichung,
            eine Veranschaulichung hilft nicht.

            aber auf den quellcode legst du schon wert, stimmts?
            und da ich nicht weis, an welcher stelle es liegen könnte, ist der ganze code relevant.

            Es ist der Quellcode relevant, der letztendlich diskutiert werden soll. Wenn du irgend eine "Veranschaulichung" postest, stochern die Leute, die direventuell helfen können, im Dunkeln und machen Aussagen, die dir nicht wirklich weiterhelfen.

            Der von dir gepostete Quellcode hat den Fehler, dass der Javascript Code sich zwischen </body> und </html> befindet. Da darf er aber gar nicht stehen!

            JavaScript-Definitionen stehen entweder zwischen <head> und </head> oder <body> und <body>, also auch nicht zwischen </head> und <body>!

            Prüfe deine Datei mal hier und beseitige die angezeigten Fehler: http://validator.w3.org/

            Gruß
              L00NIX

            1. Hallo, L00NIX!

              Prüfe deine Datei mal hier und beseitige die angezeigten Fehler: http://validator.w3.org/

              so, fehler beseitigt: http://paste.phpfi.com/53876

              freundl. Grüsse aus Berlin, Raik

              1. Oops, I did it again. :-(

                Sorry... habe gerade erst gelesen, dass du keine Webseite, sondern eine FF-Extension baust. Keine Ahnung, worauf man da so achten muss.

                Ziehe mich von diesem Threat zurück.

                Gruß
                L00NIX

                1. Hallo L00NIX.

                  Ziehe mich von diesem Threat zurück.

                  Hm? Wer hat dich bedroht? *scnr*

                  Gruß, Ashura

                  --
                  Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:( ls:# js:|
                  Try it: Become an Opera Lover in 30 days
              2. Hallo,

                so, fehler beseitigt: http://paste.phpfi.com/53876

                ...
                posdivs: function (){
                    var k = resizeTa.TAlength;
                    while(k--){
                        curPos = resizeTa.getposition(k);
                        document.getElementById('gripH_'+k).style.left   = curPos[0]+resizeTa.TA[k].offsetWidth -3;
                ...

                Die Angabe style.left benötigt im Standard-Mode _zwingend_ eine Einheit, nicht nur eine Zahl.
                ...
                        document.getElementById('gripH_'+k).style.left   = (curPos[0]+resizeTa.TA[k].offsetWidth -3) + "px";
                ...

                ...
                resizeta_h: function (e){
                curPos = resizeTa.getposition(curTA_Nr);
                    resizeTa.TA[curTA_Nr].style.width = e.pageX - curPos[0];
                    },

                resizeta_v: function (e){
                curPos = resizeTa.getposition(curTA_Nr);
                    resizeTa.TA[curTA_Nr].style.height = e.pageY - curPos[1];
                    },

                resizeta_x: function (e){
                curPos = resizeTa.getposition(curTA_Nr);
                    resizeTa.TA[curTA_Nr].style.width = e.pageX - curPos[0] + 2;
                    resizeTa.TA[curTA_Nr].style.height = e.pageY - curPos[1] + 2;
                    }
                }
                ...

                Hier ebenfalls: style.width und style.height benötigen eine Einheit, nicht nur einen Zahlenwert.

                viele Grüße

                Axel

                1. Hallo, Axel!

                  Die Angabe style.left benötigt im Standard-Mode _zwingend_ eine Einheit, nicht nur eine Zahl.

                  vielen dank! :-)
                  das war es, jetzt gehts *freu*.

                  freundl. Grüsse aus Berlin, Raik

        2. Hallo, Cheatah!

          um die frage zu konkretisieren:
          gibt es bei verschiedenen doctype-angaben einschränkungen bezüglich der schreibweise von javascript oder von erlaubten funktionen?
          exisiteren bestimmte eigenschaften evtl. nicht bei transitional oder strict, b.z.w. muss man eine bestimmte syntax beim zugriff darauf einhalten?

          freundl. Grüsse aus Berlin, Raik

  2. Hallo,

    http://paste.phpfi.com/53857

    Das Element HTML _muss_ laut XHTML 1.0 Transitional DTD http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd die Elemente HEAD und BODY jeweils einmal enthalten. Es darf _nichts_ weiter, speziell kein SCRIPT-Element enthalten. Dein Konstrukt

    <html>
    <body>
    <form>
    <textarea cols="80" rows="20"></textarea>
    </form>
    </body>
    <script>
    </script>
    </html>

    ist also schlicht falsch.

    viele Grüße

    Axel

  3. Hallo.

    den source gibts hier zu sehen: http://paste.phpfi.com/53857

    <script> muss entweder innerhalb von <head></head> (fehler bei dir komplett, ist aber "mandatory") oder <body></body> stehen.

    Gruß
      L00NIX