Avatar billede fixxxer Nybegynder
24. januar 2005 - 18:07 Der er 3 kommentarer og
1 løsning

png workaround og document.images

Jeg har en script der får PNG format til at virke i Internet Explorer:

    // Correctly handle PNG transparency in Win IE 5.5 or higher.
    // http://homepage.ntlworld.com/bobosola. Updated 02-March-2004
   
    function correctPNG()
    {
    for(var i=0; i<document.images.length; i++)
    {
        var img = document.images[i]
        var imgName = img.src.toUpperCase()
        if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
        {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle       
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
            img.outerHTML = strNewHTML
            i = i-1
            }
        }
    }
    window.attachEvent("onload", correctPNG);



Men nu vil jeg gerne finde mit <IMG> og skifte billedet ud, vha af noget lignende:

document.images[item_id].src = 'images/menu/menu_state_h.png';

Det virkede fint da billedet var gif, men efter at jeg har skiftet dem til png og skrevet workaround koden ind, får jeg fejl:

'document.images[...]' er null eller ikke et objekt

Fjerner jeg hacken og lader png billederne være, virker det fint, men så ser png'erne også tavlige ud :)

Kan man rode bod på dette åbenlyse problem i workarounden, eller er det bare sådan det er indtil Microsoft tager sig samme?
Avatar billede olebole Juniormester
25. januar 2005 - 00:32 #1
<ole>

Mit bedste råd er at bruge PNG-8 indtil IE understøtter PNG-24. De 'PNG-fix', jeg har set, har der været problemer med  :)

/mvh
</bole>
Avatar billede olebole Juniormester
25. januar 2005 - 00:34 #2
Inden du afviser, kan du lige kikke på siden her, jeg lavede til en anden bruger:
  http://tjenester.dk/x-codes.dk/eksperten/png8_imageready/
Avatar billede fixxxer Nybegynder
25. januar 2005 - 08:05 #3
Vidunderligt :-)

Den dag Microsoft laver noget man faktisk kan bruge til noget, tror jeg at jeg vil holde en lille fest. Så min grafikkerne bare se lidt gnidret ud.

Læg et svar hvis du vil have nogle point.
Avatar billede fixxxer Nybegynder
28. januar 2005 - 09:56 #4
Det viste sig at han selv havde en løsning på problem.

http://homepage.ntlworld.com/bobosola

Tak for din interesse.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester