man 12 jun 2006
En simpel funktion på Findvej har fået Safari til at crashe. Det er en fejl i Safari (ingen side burde kunne få en browser til at crashe). Funktionen, der viser nærmeste station, er nu deaktiveret for Safari-brugere. Jeg er gået i gang med at grave lidt nærmere i den.
Det er en spøjs bug: Jeg har et helt almindeligt array. Outputter jeg det, rummer det [object NodeList] , og arrayNavn.length på arrayet giver også en fin værdi. Men når jeg tilgår arrayNavn[0], crasher Safari helt og holdent:
Exception: EXC_BAD_ACCESS
Codes: KERN_PROTECTION_FAILURE
Det er ikke så hensigtsmæssigt, må man sige. Det betyder dog, at jeg endnu en gang bliver forsinket i udviklingen, fordi tiden skal gå med at lave workarounds, finde ud af, hvad der udløser browser-bugs, isolere de områder og efterfølgende skrive en bugrapport til browserproducenten og håbe at man bliver taget alvorligt. Ikke desto mindre går der nok rigtigt mange måneder, før buggen fundet og fikset i koden, og browseren er opdateret – og ikke mindst blevet så udbredt, at man tør antage, at de fleste Safari-brugere har valgt at opdatere.
12. juni 2006, 1:30 am
Buggen er rapporteret, omend det heldigvis lader til at buggen er fikset i Nightly Build af Safari. Det lader også til at ÆØÅ-problemet med Safari og XML er gået væk i de nyere builds, så forhåbentligt kan Safari-brugerne snart være med igen.
14. juni 2006, 6:29 pm
Er du sikker på, at det er et array, du har?
Vær opmærksom på, at getElementsByTagName() returnerer en NodeList, der ganske vist minder om et Array men dog ikke er det. Jeg er ikke sikker på, at det er autoriseret at kalde nodelist[0] frem for item(0) (jeg kan i hvert fald ikke finde omtale af [0]-syntaksen i DOM1-specifikationen).
14. juni 2006, 7:34 pm
Det er jo et godt spørgsmål. Jeg tog udgangspunkt i Googles XML-eksempel, hvor de refererer til nodelist[0] og fremefter.
Dog har jeg planer om at skrive denne del af koden om, så der ikke konstant henvises til XML-noder, men at dataen indlæses mere struktureret, fx netop i et array.
11. juli 2006, 2:12 am
Nyeste Safari, der lader til at være pushet ud til Mac-brugere, indeholder ikke den crash-bug, og ÆØÅ ser også helt pænt ud. Jeg er dog i tvivl om jeg skal erstatte det nuværende Safari-tjek med et specifikt versionstjek, eller om jeg blot skal antage, at folk opdaterer deres Mac, hvis den alligevel er på nettet.
21. september 2006, 7:29 pm
Jeg faldt lige over, at nodelist[0] faktisk er autoriseret f.o.m. DOM Level 2:
http://www.w3.org/TR/DOM-Level-2-Core/ecma-script-binding.html
6. november 2006, 2:23 pm
Fedt seted men ikkke noget for mig det manger underholning