michael: javascript in xhtml1.0 transitional

hallo, ich versuche gerade eine xhtml1.0-transitional-konforme seite zu erstellen.
dabei tritt bei mir jedoch immer ein problem auf.
ich habe ein javascript eingebunden:
<script type="text/javascript" src="javascript.js"></script>
dieses funktioniert auf der seite wunderbar, bis ich den doctype hinzufüge:
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
sobald sich dieser im quelltext befindet, wird das js nicht mehr ausgeführt.
das js wird auch gefunden, wenn ich echo("asdf") aufrufe, wird dieses ausgeführt.
das javascript selbst sieht wie folgt aus:

var ZielDatei = 'index.php';

function checkBrowser(){
 this.ver=navigator.appVersion
 this.dom=document.getElementById?1:0
 this.ie5=(this.ver.indexOf('MSIE 5')>-1 && this.dom)?1:0;
 this.ie4=(document.all && !this.dom)?1:0;
 this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
 this.ns4=(document.layers && !this.dom)?1:0;
 this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
 return this
}

bw=new checkBrowser()

var speed=50

var loop, timer

function makeObj(obj,nest){
 nest=(!nest) ? '':'document.'+nest+'.'
 this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
 this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
 this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight
 this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight
 this.up=goUp;this.down=goDown;
 this.moveIt=moveIt; this.x; this.y;
 this.obj = obj + 'Object'
 eval(this.obj + '=this')
 return this
}

function moveIt(x,y){
 this.x=x;this.y=y
 this.css.left=this.x
 this.css.top=this.y
}

function goDown(move){
 if(this.y>-this.scrollHeight+oCont.clipHeight){
  this.moveIt(0,this.y-move)
  if(loop) setTimeout(this.obj+'.down('+move+')',speed)
 }
}

function goUp(move){
 if(this.y<0){
  this.moveIt(0,this.y-move)
  if(loop) setTimeout(this.obj+'.up('+move+')',speed)
 }
}

function scroll(speed){
 if(loaded){
  loop=true;
  if(speed>0) oScroll.down(speed)
   else oScroll.up(speed)
 }
}

function noScroll(){
 loop=false
 if(timer) clearTimeout(timer)
}

var loaded;
function scrollInit(){
 oCont=new makeObj('divCont')
 oScroll=new makeObj('divText','divCont')
 oScroll.moveIt(0,0)
 oCont.css.visibility='visible'
 loaded=true;
}

onload=scrollInit;

kann mir jemand weiterhelfen? der fehler muss ja anscheinend im skript liegen...
vielen dank schonmal im voraus, michael

  1. achja, kleine anmerkung noch.
    das javascript scrollt eine "navigationsleiste" (wenn man es so nennen darf) vertikal.
    ich habe gerade gemerkt, dass das js im internetexplorer und im opera ausgeführt wird, nicht jedoch in meinem lieblingsbrowser firefox...
    vielleicht hilft das ja weiter **hoff**

    michael

    1. Hi,

      ich habe gerade gemerkt, dass das js im internetexplorer und im opera ausgeführt wird, nicht jedoch in meinem lieblingsbrowser firefox...

      und gibt der nicht vielleicht eine Fehlermeldung aus?
      Falls nicht, könnte es auch am HTML-Code liegen, der bei korrektem Doctype "strenger" interpretiert wird.

      freundliche Grüße
      Ingo

      1. und gibt der nicht vielleicht eine Fehlermeldung aus?
        Falls nicht, könnte es auch am HTML-Code liegen, der bei korrektem Doctype "strenger" interpretiert wird.

        der quelltext wurde schon validiert und ist korrektes xhtml1.0.
        es muss wohl irgendwo am javascript liegen.
        ich denke fast, dass es ein fehler vom ie ist, dass er das javascript richtig anzeigt. der firefox wird schon recht haben, wenn er es nicht darstellen will ;(

        michael

  2. Hallo michael,

    function moveIt(x,y){
    this.x=x;this.y=y
    this.css.left=this.x
    this.css.top=this.y
    }

    Mozilla braucht explizit die Maßeinheit im Standardmodus, wie es ja auch die CSS-Spezifikation vorschreibt.

    function moveIt(x,y){
      this.x=x;this.y=y
      this.css.left=this.x + 'px';
      this.css.top=this.y + 'px';
    }

    das sollte wirken.

    MfG, Mülli

    --
    Viva Colonia!
    1. Mozilla braucht explizit die Maßeinheit im Standardmodus, wie es ja auch die CSS-Spezifikation vorschreibt.

      wow, damit haut es tatsächlich hin!
      Mülli, du bist für heute abend mein absoluter held!
      vielen vielen dank!!!

      michael