Joy Kirchhoff: Javascript funktioniert nicht mit xhtml

Beitrag lesen

Hallo,

ich habe hier ein etwas älteres Javascript welches ein div via Linkklicks verschiebt, es soll Text in einem Div ohne Browserscrollbar gescrollt werden. Es läuft in einem HTML-, nicht aber in einem XHTML-Dokument, dort passiert einfach gar nichts beim klick. Alles validiert und ok. Kann mir da jemand auf die Sprünge helfen?

Vielen Dank!

Das verkürzte Dokument:

<body onload="javascript:InitialiseScrollableArea()">
<p><a href="javascript:;" onmouseover="PerformScroll(-7)" onmouseout="CeaseScroll()">[scroll up]</a></p>
<div id="contentbox">
 <div id="contentboxtext"><b>vieltext</b></div>
</div>

Die CSS:

#contentbox {
 height: 300px;
 width: 450px;
 position: absolute;
 overflow:hidden;
 left: 360px;
 top: 200px;
 clip:rect(0,450,300,0);
 background-color: #FFFFFF;
 filter:alpha(opacity=70);
 -moz-opacity:0.7;
 opacity:0.7;
}

#contentboxtext {
 width: 300px;
 left: 10px;
 top: 10px;
 float: left;
 padding-top: 15px;
 padding-bottom: 15px;
 padding-left: 98px;
 position: absolute;
}

Das Javascript:

function verifyCompatibleBrowser(){
    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 verifyCompatibleBrowser()

var speed=50

var loop, timer

function ConstructObject(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=MoveAreaUp;this.down=MoveAreaDown;
    this.MoveArea=MoveArea; this.x; this.y;
    this.obj = obj + "Object"
    eval(this.obj + "=this")
    return this
}
function MoveArea(x,y){
    this.x=x;this.y=y
    this.css.left=this.x
    this.css.top=this.y
}

function MoveAreaDown(move){
 if(this.y>-this.scrollHeight+objContainer.clipHeight){
    this.MoveArea(0,this.y-move)
    if(loop) setTimeout(this.obj+".down("+move+")",speed)
 }
}
function MoveAreaUp(move){
 if(this.y<0){
    this.MoveArea(0,this.y-move)
    if(loop) setTimeout(this.obj+".up("+move+")",speed)
 }
}

function PerformScroll(speed){
 if(initialised){
  loop=true;
  if(speed>0) objScroller.down(speed)
  else objScroller.up(speed)
 }
}

function CeaseScroll(){
    loop=false
    if(timer) clearTimeout(timer)
}
var initialised;
function InitialiseScrollableArea(){
    objContainer=new ConstructObject('contentbox')
    objScroller=new ConstructObject('contentboxtext','contentbox')
    objScroller.MoveArea(0,0)
    objContainer.css.visibility='visible'
    initialised=true;
}