I have a website - http://gap.quotamarketing.co.uk/ - and on this website I have a pngfix. I also have a flash object.
In IE6, which I am required to support, every image after the flash object is not included in the document.images that the png fix uses to loop through the images, and so the png fix doesn't get applied. Any ideas how I can get the rest of the images to appear in this list? (I am looking to replace the brightside group logo and it really shows with the new image)
Any help greatly appreciated!
pngfix script:
// JavaScript Document
/*
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
*/
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
if ((version >= 5.5) && (document.body.filters))
{
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
}
}
}
I'm not familiar with pngfix, but you should consider using SWFObject to embed your Flash object. You could then delay the Flash object's insertion into the page until after your pngfix has completed. Because your pngfix script uses
deferto put off it's execution until the page is loaded, you will have to take a similar measure to delay the initialization of SWFObject.The way I would do this is to set a variable in the conditional comment block that we can check outside. If it doesn't exist, then you can just get on and embed the SWF using SWFObject, otherwise, you would call the embed from the end of the pngfix script.
Then, at the end of the pngfix script, you put the same line of Javascript in again to embed swfobject when everything is finished.