Solved

Unitpngfix problem on Vista

Posted on 2009-07-01
8
615 Views
Last Modified: 2013-11-19
Greetings,

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>
<![endif]-->

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.
0
Comment
Question by:max7
  • 4
  • 4
8 Comments
 
LVL 17

Expert Comment

by:mreuring
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,

 Martin
0
 
LVL 1

Author Comment

by:max7
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.
0
 
LVL 17

Expert Comment

by:mreuring
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!

 Martin
0
 
LVL 1

Author Comment

by:max7
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?
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 17

Expert Comment

by:mreuring
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'.
0
 
LVL 1

Author Comment

by:max7
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?
0
 
LVL 17

Accepted Solution

by:
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.
0
 
LVL 1

Author Closing Comment

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

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Suggested Solutions

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 …
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
The viewer will learn how to count occurrences of each item in an array.
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

744 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now