views:

1409

answers:

1

I'm showing favicons of websites in a list, as <img /> elements.

some websites serve them as:

<link rel="icon" type="image/x-icon" href="favicon.ico" />

and some serve them as:

<link rel="shortcut icon" href="favicon.ico" />

IE doesn't show the favicons images of those of don't have type="image/x-icon".
I cannot control how websites serves their favicons, so what can I do from my side?

+2  A: 

I think the best thing to do is convert them to another format. If you are displaying the icons manually then you could download each, convert it with an image program, and upload it to your site.

If you're doing it automatically you'll need to look at whatever image-handling tools you get on the server-side. If you're using PHP, that'd be the GD or ImageMagick libraries. Just convert to PNG for example, and cache it on your site.

If IE doesn't display .ico files inline with a page, then it's unlikely you're gonna be able to make it display without doing some kind of processing. At the most simple level, you can just read the external images and serve them up as the right mime type, without converting them.

DisgruntledGoat
I agree - much better than trying somehow to make browsers (esp. non-IE ones) display ICOs in IMGs
Eli Krupitsky
Non-IE ones display them correctly always. I'm on .NET :( they're all dynamically loaded, thousands of them probably. I know GD for PHP, and thought about it, but its too much work for such a simple thing. thanks for your kind help!
vsync
I'm sure .net has some image handling functions. But you should be able to simply serve up files yourself with a different mime type, without conversion.
DisgruntledGoat
@DisgruntledGoat - How can I do that ?
vsync
I don't know exactly how in .net, but you'd have a script with a parameter of the icon file. The script would set a header of `image/x-icon` and then read the file passed in and simply spit it out. In PHP you'd just use the header function and curl_exec. May be worth asking a separate question targeted directly towards .net.
DisgruntledGoat
Thanks a lot :)
vsync