Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Unitpngfix problem on Vista

Posted on 2009-07-01
Last Modified: 2013-11-19

Up to this point, I have successfully deployed the unitpngfix described here: http://labs.unitinteractive.com/unitpngfix.php.  The only place it is *seems* to cause a problem is on my hp laptop which is running Vista Home Edition 64bit.

The problem is that any .png with transparency AND the background image which is NOT transparent do not appear.  If I remove the following conditional statement from a page:

<!--[if lt IE 7]>
        <script type="text/javascript" src="unitpngfix.js"></script>

all transparent .pngs AND the background image (again not transparent) appear as they should.  If I replace the conditional statement, they disappear again.

I have done the following to resolve this issue:

1) checked the path to the clear.gif in the unitpngfix.js; it is correct
2) replaced all files used in the unitpngfix to in case any were corrupted; problem persists.
3) I have tested this site in XP and Server 2003 in IE6 using IEtester and it works as it should; the only place it does NOT work in IE6 is on my laptop running Vista Home Edition 64bit.

Unfortunately, I have no other machine running Vista Home 64 bit or any version of Vista along with an installation of IE6 for testing to see if I am able to replicate this problem elsewhere.  For that matter, I wonder: how many machines which are running any version of Vista would also be running IE6?  It seems to me that would be highly unlikely.

Please let me know if you need more information to troubleshoot this issue.  I would post code and .pngs but my thought is anyone out there that has a development environment should be able to test this using any .pngs and some markup.
Question by:max7
  • 4
  • 4
LVL 17

Expert Comment

ID: 24758962
Hmmm, Vista doesn't come with IE6, does it? I'm a little rusty on these matters since I've moved away from windows, but I'm pretty sure Vista came with IE7, right?

Now depending on the 'install' you used to get IE6 to run in Vista, there's a mighty good chance that it's crippled and running the standard scripting engine, which is to say, the one that comes with whatever latest version of IE is installed (IE8? or at least IE7). The result is that your conditional statement is incorrectly identifying your browser as being IE7 or greater. Since you're trying to check for less than IE7, the statement returns false and doesn't run unitpngfix!

To resolve
a) test on a clean windows installation with IE6 installed as the main browser, see if problem persists.
b) Test your conditional statements to identify which browser your browser thinks it is.

I would really advice on using a Virtual Machine environment to test your browser compatibility. I have a single VM with multiple versions of IE, but for any version-related tests I always double-check with a safe VM that only runs a single IE version!

Hope this helps,


Author Comment

ID: 24759328
Hey Marin, thanks for the guidance.  I'm going to work on this between tonight and tomorrow and will let you know how it works out.

>>>I would really advice on using a Virtual Machine environment to test your browser compatibility.

I have considered this but to be honest, I am mostly clueless on how to setup a virtual machine on my computer.  I know this kinda steps out of the scope of this question but if you could send me a link to a "dummies" guide on how to set this up, I would be eternally grateful :)  Otherwise, I will post a new question later.
LVL 17

Expert Comment

ID: 24761822
Well, I can't say I know of a dummy guide, but I've found that VirtualBox runs pretty well (http://www.virtualbox.org/), it's free too, which could be a bonus ;)
Otherwise I have a good experience using VMWare, although on the Mac this may be a more gratifying experience than what it is on PC's?

Essentially the gest of the concept is:
Hi Max

1) Install a Virtual Machine Manager (VMWare, VirtualBox, VirtualPC?)
2) Use that manager to 'build' a new Virtual Machine.
3) Install an OS on the Virtual Machine

Alternatively, if your a windows user, there's test-VM's available from Microsoft. These run in VirtualPC and are time-limited, which means you'll need to re-aquire them every now and again. However, they are the officially legal way to run Windows in a VM, where installing windows with the same key as your Host-machine is officially illegal ;)

Hope this helps, if not I'd recommend asking a question in the appropriate topic, there being more knowledgable techies out there ;)

Good luck!

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.


Author Comment

ID: 24773548
>>> but I'm pretty sure Vista came with IE7, right?

I believe this is correct since I've found at least one article which confirms this.

>>>To resolve
a) test on a clean windows installation with IE6 installed as the main browser, see if problem persists.

Do you mean to reload the Vista OS on my laptop?  Pardon my ignorance but this sounds like quite a project?  Perhaps using a virtual machine will produce the same results?
LVL 17

Expert Comment

ID: 24774233
Well, reloading Vista is probably not going to help, that would come with IE7 pre-installed! You need a machine that does not have a version of IE later than 6! There's no ignorance involved, lacking a machine that only has IE6 installed the logical step is to build a virtual machine, so you've basically come to the right conclusion.

I only suggested a freshly installed machine with IE6 because a lot of tech-related people have some old machine lying around on which they can install Windows XP from an old CD they have lying around :) Also, I wanted to stress the point that running IE6 besides IE7 or 8 is 'unsafe'.

Author Comment

ID: 24807837
>>>I only suggested a freshly installed machine with IE6 because a lot of tech-related people have some old machine lying around

Yes, reasonable assumption and I'm slowly working up to that! :)

>>>Also, I wanted to stress the point that running IE6 besides IE7 or 8 is 'unsafe'.

What is unsafe about it?

Fyi, I've tested out changing the conditional statement and it seems that when I change it to lt IE 6, the images will re-appear but the unitpngfix will not work and the .png images will not appear transparent.  When I use lt IE7 or above, the unitpngfix will work everywhere including IE6 except on the Vista machine.   Does this tell us where the problem lies?  Do you need more specific information and testing from me?
LVL 17

Accepted Solution

mreuring earned 500 total points
ID: 24821388
The problems you are having are directly related to what I mean with 'unsafe'. The explorer rendering engine and related components (such as the scripting engine) are core components of windows. This is the reason that Microsoft does not enable us to run multiple versions of Internet Explorer on the same machine, this is officially not possible.

Some people have figured out ways to get around this problem by containing all the required components and the executable for a single Internet Explorer version into a single directory. The problem is, if something is done wrong in this setup (a component is overlooked for instance), your self-contained Internet Explorer is no longer 'self-contained'. Instead it will borrow it's missing component from the default version installed on your machine.

So we come back to your situation. Internet Explorer 7 is the default installed browser. IE6 is supposed to be running stand-alone. However, the scripting engine is not configured correctly, or perhaps an essential Registry tweak is not installed, and the scripting engine therefor defaults back to the default install which is IE7. Since your conditional comments run in the scripting engine, they think you're running IE7 and fail to work as you expect them to.

What you're running into is the most common problem with stand-alone IE6 installations but I've seen other similar problems as well, which is why I always test with a separate VM if I get seemingly 'impossible' errors on my multiple IE VM.

Author Closing Comment

ID: 31598892
Alrighty then!  Thanks so much for casting light on this issue for me.  I'm off to create my first VM ....

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Divi Them Help with Full Width header 20 96
Testing Responsiveness for Different Devices 4 36
How can I make the first part identical to the second ? 1 25
I found this questions asking how to do this in many different forums, so I will describe here how to implement a solution using PHP and AJAX. The logical flow for the problem should be: Write an event handler for the first drop down box to get …
Styling your websites can become very complex. Here I'll show how SASS can help you better organize, maintain and reuse your CSS code.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question