Hej Morten
Morten Abildgaard wrote:
> Simon Mikkelsen skrev i dk.edb.internet.webdesign.clientside:
>>Lige et godt tip: 
> [klip]
> Bravo, det er rigtig godt gået det der.
Enig ! 
 
Men angivne script ser jeg problemer med:
> function brwcheck(){ 
>   this.ver=navigator.appVersion;
>   this.agent=navigator.userAgent;
>   this.dom=document.getElementById?1:0;
>   this.opera5=this.agent.indexOf("Opera 5")>-1;
>   this.ie5=(this.ver.indexOf("MSIE 5")>-1 &&this.dom&&!this.opera5)?1:0; 
>   this.ie6=(this.ver.indexOf("MSIE 6")>-1 &&this.dom&&!this.opera5)?1:0;
>   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) ?1:0;
>   this.ns4=(document.layers && !this.dom)?1:0;
>   this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);
>   return this;
> } bw=new brwcheck();
[klip noget kode]
Dette script har for mig at se den svaghed at det kræver at man kender 
alle browsere som skal understøttes. Det bygger primært på browser-check 
fremfor feature-check, og det er efter min mening en fejl. Ovenstående 
funktion vil give problemer med Konqueror 2.x som både understøtter W3C 
DOM (document.getElementById) og IE4-DOM (document.all). I hvert fald 
når man bruger det fremkomne objekt bw som det (lidt uoverskueligt 
iøvrigt) angives:
> // og så finder vi elementet
> el=(bw.ns4)?document.sub:(bw.ie4 || bw.ie5)?document.all[sub]:(bw.ns6 || 
> bw.ie55 || bw.ie6)?document.getElementById(sub):0;
Bruger man det sådan, vil jeg i hvert fald ændre den sidste sidste "if" 
til et mere generelt W3C DOM check så det også virker i f.eks. Konqueror 
2.x:
el=(bw.ns4)?document.sub:(bw.ie4 || 
bw.ie5)?document.all[sub]:(bw.dom)?document.getElementById(sub):0;
Er der iøvrigt en specielt grund til at ovenstående bruger 
document.all[] i IE5 når document.getElementById() også er understøttet 
i denne browser ? Jeg vil hellere bruge den standardiserede W3C DOM 
metode når den understøttes, fremfor Microsofts egen document.all[].
Personligt ville jeg selv tage udgangspunkt i at tjekke for 
understøttelse af document.getElementById, document.all og 
document.layers i angivne prioriterede rækkefølge, og kun tjekke for 
specifikke browsere når der er ting jeg ved ikke virker i bestemte 
browsere, og kræver at der tages særlige hensyn i disse. Så er jeg lidt 
mere fremtidssikret, og behøver ikke kende alle browsere som kan tænkes 
at virke.
Mvh. Stig
stig@rockland.dk
PS. Flere links om emnet på 
http://www.rockland.dk/stig/upghtml.html