"LR" <asda@das.dd> writes:
>>> En simpel if (is_gecko) kunne have henvist til en ikke-lag-udgave.
>>
>> Lasse, sådan må man sku da ikke kode hjemmesider! Det ved du udmærket
>> godt.
> Er det JavaScript, du mener? Selv Firefox understøtter da
> JavaScript. Ellers kan man bruge <noscript> for stenalderbrowsere. Eller er
> det selve ideen om klient-baseret kode, du er mod?
Jeg ved ikke hvad posteren[1] mente, men min tanke var at "is_gecko"
lugter af browser-detection, og det er en metode der er så usikker
at den bør opgives.
Det er usikkert både fordi browsere lyver i deres user-agent-streng,
fordi dem der bruger det sjældent har overblik over hvilke browsere
deres tests matcher, og fordi det er umuligt at gætte hvad fremtidige
browsere vil gøre.
Det er *meget* sikrere at lave test direkte på de egenskaber man
bruger. Altså ikke gætte at det er IE og derefter bruge document.all,
men teste direkte for document.all (som fallback for
standard-funktionen document.getElementById, som man tester for
først).
Altså, ikke "is_gecko", men fx "has_getElementById", men selv det
kan nøjes med at blive testet en gang, og derefter bruger man
en funktion der abstraherer den slags væk.
Det er hvad der gælder når man vil have Javascript til at virke på
forskellige browsere, der ikke er helt enige om at følge standerder.
I dette tilfælde, hvor det er HTML'en der er problemet vil en
Javascript-baseret switch betyde at det forskellige indhold af siden
skrives via Javascript. Det er også en dårlig ide, da siden så slet
ikke virker uden Javascript slået til, og den er umulig at indeksere
for en søgemaskine.
Og så er det ikke kun Gecko-baserede browsere der skal have en
ikke-layer-version. Det er alle ikke Netscape 4-browsere (eller
virkede det også i Netscape 3? :)
/L
[1] Du skal huske at skrive hvem du citerer!
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'