dynamische Seite nicht DOM-konform: dynamische Seite nicht DOM-konform

Hallo,

ich habe ein Problem mit einem Java-Script auf meiner Homepage (www.radtke-immo.de/pfolio.htm)
Die HP wird vom IE perfekt angezeigt, aber das ist ja auch kein Wunder.
Mozilla, aktueller NS usw. haben Probleme mit der „Angebot“ Seite, denn hier funktioniert weder der Scrollbalken noch das Klicken auf ein Bild damit sich ein neuer Frame öffnet.

Was ich bisher recherchiert habe, ist das es am Java-Script liegen muß und zwar wegen dem dynamischen Aufbau. Hier berücksichtigt mein Script nur ältere Browsergenerationen denn es arbeitet mit "document.all" und mit "document.layers".
Ich habe gesehen, daß man für neuere Browsergeneration das Script "DOM-konform" erstellen muß mit "node" oder „document.getElementById“, aber ich weiß leider nicht wie.

Ich habe das Script mal hineinkopiert, vielleicht kann mir jemand beim Anpassen helfen.

Vorab schon mal vielen Dank
Gruß Henning

<SCRIPT language=JavaScript type=text/javascript>
<!--
function horScroll(dir, spd, loop) {
loop = true;
direction = "lft";
speed = 10;
timer1 = null;
ie4 = (document.all);
ns4 = (document.layers);
if (ns4) {
doc = "document";
sty = "";
htm = ".document";
} else {
if (ie4) {
doc = "document.all";
sty = ".style";
htm = "";
}
}
direction = dir;
speed = parseInt(spd);
var page = eval(doc + "["hzlayer"]" + sty);
var x_pos = parseInt(page.left);
if (loop == true) {
if (direction == "rgt") {
page.left = (x_pos - (speed));
} else {
if (direction == "lft" && x_pos < 10) {
page.left = (x_pos + (speed));
} else {
if (direction == "top") {
page.left = 10;
}
}
}
timer1 = setTimeout("horScroll(direction,speed)", 1);
}
}

function stopScroll() {
loop = false;
clearTimeout(timer1);
}

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

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

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function SSVII_ShowHz(targetNN, targetIE, dur, incr) {
transNo = parseInt(16);
arHidden = new Array(1, 3, 14, 16);
if (document.all) {
target = eval(targetIE);
target.style.filter = "revealTrans(duration=" + dur + ",transition=12)";
endState = "hidden";
for (i = 0; i < arHidden.length; i++) {
if (arHidden[i] == transNo) {
endState = "visible";
target.style.visibility = "hidden";
}
}
target.filters.revealTrans.apply();
target.style.visibility = endState;
target.filters.revealTrans.play();
}
if (document.layers) {
target = eval(targetNN);
if (incr == 0) {
target.origLeft = target.clip.left;
target.origTop = target.clip.top;
target.origRight = target.clip.right;
target.origBottom = target.clip.bottom;
mSecs = dur * 1000;
intval = 100;
visits = (mSecs / intval);
fullW = target.clip.width;
fullH = target.clip.height;
halfW = fullW / 2;
halfH = fullH / 2;
alternateW = alternateH = true;
increment = halfH / visits;
target.clip.top += halfH;
target.clip.bottom -= halfH;
target.visibility = "show";
target.clip.top -= increment;
target.clip.bottom += increment;
} else {
target.clip.top -= increment;
target.clip.bottom += increment;
}
if ((target.clip.top - target.origTop) <= increment) {
target.clip.top = target.origTop;
target.clip.bottom = target.origBottom;
} else {
setTimeout("SSVII_ShowHz("" + targetNN + "","" + targetIE + "","" + dur + "",1)", dur);
}
}
}

function MM_findObj(n, d) { //v4.01
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=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>

  1. Hell-O!

    ich habe ein Problem mit einem Java-Script auf meiner Homepage (www.radtke-immo.de/pfolio.htm)

    Kein Wunder, es wurde für die Steinzeit geschrieben:

    ns4 = (document.layers);

    Hier streiken alle modernen Browser. Dein Script funktioniert also nur im IE und in uralten Geckos. Browser, die den Namen verdienen, kennen weder "document.all" noch "document.layers". Die logische Konsequenz ist, dass diese Zeile:

    var page = eval(doc + "["hzlayer"]" + sty);

    mit der Fehlermeldung "doc is not defined" quittiert wird. Für den Zugriff auf HTML-Elemente benutze bitte die entsprechenden DOM-Methoden, so wie sie im DOM-Kapitel von SELFHTML beschrieben sind. Für eine browserübergreifende DHTML-Programmierung gibt es eine Allgemeine DHTML-Bibliothek, die du dir mal ansehen solltest.

    Siechfred