Claudy: Links & DHTML-Scrollers in Mozilla Firefox / Opera

Hello.
Habe da mal ne Frage bezüglich Mozilla Firefox & Opera.
Seitdem ich DHTML-Scrollbars eingebaut habe, funktionieren die Links in Firefox sowie Opera nicht mehr - Es ist nur noch normaler unterstrichener Text. Habe zwar schon ein bisschen an dem Code herumgespielt, allerdings funktionieren dann entweder die DHTML-Scrollers aber die Links nicht oder umgekehrt.

Hier mal der Code für die DHTML-Scrollers:

Head:
<style type="text/css">
#divUpControl {position:relative; left:152px;top:60px; width:410px;height:250px; z-index:0; text-align: right}
#divDownControl {position:relative; left:152px; top 160px; width:410px;height:250px; z-index:0;text-align: right}
#divContainer {LEFT: 160px; VISIBILITY: hidden; OVERFLOW: hidden; WIDTH:410px; CLIP: rect(0px 410px 250px 0px); POSITION: relative; TOP: -440px; HEIGHT: 240px; z-index:1}
#divContent {LEFT: 160px; POSITION: absolute; TOP: 73px; z-index:1}
-->
</style>

<script language="JavaScript">
/* Extension written by David G. Miles (http://www.z3roadster.net/dreamweaver/)
based in part on code written by Thomas Brattli (http://www.bratta.com)*/
// Courtesy of SimplytheBest.net (http://simplythebest.net/info/dhtml_scripts.html)
<!--
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('divContainer')
objScroller=new ConstructObject('divContent','divContainer')
objScroller.MoveArea(0,0)
objContainer.css.visibility='visible'
initialised=true;
}

function displayStatusMsg(msgStr) {
status=msgStr;
document.returnValue = true;
}

function preloadImages() {
var d=document; if(d.images){ if(!d.p) d.p=new Array();
var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function swapImgRestore() {
var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function findObj(n, d) {
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); return x;
}

function swapImage() {
var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

<script language="JavaScript">
<!--
function reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.pgW=innerWidth; document.pgH=innerHeight; onresize=reloadPage; }}
else if (innerWidth!=document.pgW || innerHeight!=document.pgH) location.reload();
}
reloadPage(true);
// -->
</script>

Body-tag:
onLoad="InitialiseScrollableArea();preloadImage('o.gif','u.gif')"

Danke im Vorraus.
Claudy

  1. Hallo,

    Hello.
    Habe da mal ne Frage bezüglich Mozilla Firefox & Opera.
    Seitdem ich DHTML-Scrollbars eingebaut habe, funktionieren die Links in Firefox sowie Opera nicht mehr - Es ist nur noch normaler unterstrichener Text. Habe zwar schon ein bisschen an dem Code herumgespielt, allerdings funktionieren dann entweder die DHTML-Scrollers aber die Links nicht oder umgekehrt.

    Du hast zwar viel Code gepostet, aber den für die Links nicht. Wäre hilfreich, wenn du das noch machen würdest.

    Übrigens (auch wenn das nicht die Fehlerquelle sein wird):

    • Den Kommentar, den du innerhalb des Style-Tags schliesst, solltest du vorher auch geöffnet haben
    • Die Dreamweaver-Funktion findObj() ist total veraltet und wird dir unter Umständen mit Opera und Gecko-Browsern nicht viel Freude bereiten
    • Das language-Attribut im Script-Tag solltest du zugunsten von type="text/javascript" entfernen.
    • Der Scroller wird, wenn du einen "anständigen" Doctype verwendest, in Geckobrowsern nicht funktionieren.

    MfG Mülli

    --
    Viva Colonia!
    1. Danke für die Antwort!
      Für die Links habe ich eigentlich keinen Code, nur eben den 'normalen' zur Bestimmung der Farbe, Dekoration, etc.:

      <STYLE type=text/css>
      }
      <!--
      a:link {color: #B69658; text-decoration:none}
      a:visited {color: #B69658; text-decoration:none}
      a:active {color: #B69658; text-decoration:none}
      a:hover {color: #B69658; text-decoration:underline}
      -->
      }
      </STYLE>

      Grüße,
      Claudy

      1. Hallo,

        Für die Links habe ich eigentlich keinen Code, nur eben den 'normalen' zur Bestimmung der Farbe, Dekoration, etc.:

        aber du musst doch irgendwo a-Tags definiert haben?

        <STYLE type=text/css>
        }
        <!--
        a:link {color: #B69658; text-decoration:none}
        a:visited {color: #B69658; text-decoration:none}
        a:active {color: #B69658; text-decoration:none}
        a:hover {color: #B69658; text-decoration:underline}
        -->
        }
        </STYLE>

        Was machen denn dort vor und nach dem Kommentar die geschweiften Klammern?

        MfG Mülli

        --
        Viva Colonia!
        1. aber du musst doch irgendwo a-Tags definiert haben?

          a-Tags? Meinst du das:
          <a href="epics.htm" target="">Pics</a> ?

          Was machen denn dort vor und nach dem Kommentar die geschweiften Klammern?

          Ups, die gehören da ja gar ned hin....