27. maj 2005 - 11:14Der er
11 kommentarer og 3 løsninger
Optimere Javascript til de mest gængse browsere
Hej!
Jeg har omkring 600 linier javascript, der virker i IE, men vil også gerne have det til at virke i FireFox + alle de andre gængse browsere... Derfor er jeg på jagt efter gode links, råd eller andet der kan hjælpe mig med dette.
Hvis der er nogen der har lyst til at "konvertere" koden er I meget velkomne til dette :-) (Så kommer der flere points på højkant!)
først og fremmest bør du droppe den browser-sniffing du bruger (isMinNS4 osv.) Istedet lave en feature-test, dvs. teste om en feature er understøttet af browseren når den skal bruges.
Fx når du skal have fat i et element, så kunne du skrive: if (document.getElementById) { elm = document.getElementById("elementID"); } else if (document.all) { elm = document.all["elementID"]; }
Typisk bruger jeg en lille funktion til den slags: function getElm(elmId) { if (document.getElementById) { return document.getElementById(elmId); } else if (document.all) { return document.all[elmId]; } else return null; }
Så kan du kalde den sådan her: elm = getElm("elementId"); Som du kan se har jeg ikke tager document.layers med - den kan du tilføje hvis du lyster, men jeg er efterhånden holdt op med at understøtte de gamle netscape browsere på den sigt. document.layers var så fuld af fejl og mangler så moderne scripts vil sikkert ikke virke i den selvom man prøvede at bruge document.layers.
fordi du mangler enheder, som er påkrævet i Mozilla (IE har som standard pixel, hvorfor det virker der). Dit script skal derfor se sådan ud: function moveLayerTo(div, x, y) { if (isMinNS4) { div.moveTo(x,y); } if (isMinIE4) { div.style.left = x+"px"; div.style.top = y+"px"; } }
Hej, tak skal I have - nu virker det :-) Roenving, vil du ikke lige smide et svar også, så giver jeg jer følnende points: Skovenborg: 15+10 Roenving: 10
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.