Varför fungerar en funktion i alla webbläsare utom Safari? Därför att det är den enda webbläsaren du just nu inte kan kolla tänkte jag när det hände mig.
Sitter på en Dell-dator och det brukar vara lite knepigt att få igång OS X på dem - nästintill omöjligt väl och definitivt inte värt mödan för en enda liten bugg.
Jag kör Xubuntu i VirtualBox på datorn dock och Safari är ju baserat på KHTML som är renderingsmotorn i KDE:s Konqueror - och den har jag installerat i Xubuntu - tro dock inte att felet finns där - nä det är Apple-exklusivt, jobbigt...
Vad gör man då? Du sätter dig i en stilla bön till Gud om en lösning vilket i modernt språk innebär att du googlar. Svaren blev, som alltid med det religiösa, diffust. Vissa röster bekräftar felet, andra svamlar om fullständigt tosiga saker och vips så sitter den där - svaret på dina bekymmer - SitePoint. (nej - jag fick inget betalt för det - en uppenbarelse är dock väl värd ett omnämnande)
SitePoint lyckas både precisera problemet som en lösning:
Om du ska ladda en bild med bildobjektet och vill göra något när den bilden är färdigladdad - då kan du inte använda this i din onload-metod för då kajkar Safari ur. Den tror att this hänvisar till fönstret snarare än bilden - en ganska så galen uppfattning som skiljer sig mot de andra stora webbläsarna som IE, FF och Opera.
Lösningen är att inte använda this. Det är något som du absolute inte kunde tänka ut själv och som du därför är mig evigt tacksam för att jag påpekat. Jasså inte? Då kan jag berätta att du gör det genom att specifiera en variabel utanför/innan onload-metoden som innehåller en referens till Image-objektet och som du sedan använder i onload-metoden för att hänvisa till Image-objektet.
Enkelt va? Eller borde jag sluta babbla svenska och skriva lite riktigt kod att klippa och klistra? Det blir dock lite problematiskt då min stenåldersblogg inte riktigt stödjer det. Jag byggde den 2005 - nu är det 2007 - då var jag inte lika rutinerad som nu alltså ska hela bloggen göras om. Det har den dock inte blivit då jag sysselsatt mig med en Safari-bugg...
Aja - hoppas lösningen faller i smak!
Andra bloggar om: bugg, safari, javascript

