"RoJo" <ronnij@mail1.stofanet.dk> writes:
> Oki, har du et fix, som vil forny koden ?
Prøv det her:
Tilføj/udskift tjek af Opera 6 og 7 til lib_bwcheck-funktionen
---
this.opera5=this.agent.indexOf("Opera 5")>-1
this.opera6=this.agent.indexOf("Opera 6")>-1
this.opera7=this.agent.indexOf("Opera 7")>-1
this.opera=this.opera5||this.opera6||this.opera7;
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera);
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera);
this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
this.ie=this.ie4||this.ie5||this.ie6;
this.mac=this.agent.indexOf("Mac")>-1;
this.ns6=(this.dom && parseInt(this.ver) >= 5 && !this.opera);
this.ns4=(document.layers && !this.dom);
this.bw=(this.ie || this.ns4 || this.ns6 || this.opera)
---
Fjern de to første linjer af initFoldout-funktionen (den forsøger
at lave noget ekstra browsertjek, som sætter bw.opera5 selv for
Opera 6 og 7. Der er ikke brug for ekstra browsertjek).
(Jeg tror også at Opera 6 ikke bruger "px", så linjen for px skal måske
også ændres:
var px = bw.ns4||bw.opera5||bw.opera6?"":"px"
)
Det er et spændende eksempel på objektorienteret kode i Javascript, og
scriptet tager højde for mange browsere. Ganske flot. Jeg har dog den
ene ting at udsætte på det, at det bruger sit browsertjek som en
white-list. *Hvis* vi genkender browseren, så tillader vi at menuen
virker, ellers gør vi ikke. Det vil fejle for *alle* nye browsere,
hvilket ikke er hensigtsmæssigt - det kræver for meget arbejde at
holde det opdateret. Det skulle istedet teste for de DOM-egenskaber
der skal bruges, og lave det hele med DOM, og kun bruge
browser-tjekket som black-list. Hvis vi genkender en browser, så
tillader vi os at lave nogle undtagelser for den browser.
Altså: Have en default der virker i stedet for en der ikke virker.
/L
--
Lasse Reichstein Nielsen - lrn@brics.dk
Ph.D. i datalogi søger stilling som software-udvikler i Øst- eller
Nordjylland. Curriculum Vitae: <URL:
http://www.brics.dk/~lrn/cv.html>