Create a Blank Favicon with Data
I was recently setting up a virtual host and diving into development when I needed to debug a JavaScript issue. One thing that started annoying me right away was the console message notifying me that the favicon.ico file couldn't be found. I hadn't put one there and had no desire to...but that damn message was bugging the hell out of me. I did a quick search and found a tiny data URL snippet to include a blank favicon within the page.
The HTML
The empty favicon is created with the LINK element:
<link href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" rel="icon" type="image/x-icon" />
Essentially, instead of linking the external ico file, the image data is placed in the HREF attribute. Cool, huh? No more annoying messages and no need to add another file to the repository.
![9 Mind-Blowing WebGL Demos]()
As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us. Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos. Another technology available...
![Create a CSS Flipping Animation]()
CSS animations are a lot of fun; the beauty of them is that through many simple properties, you can create anything from an elegant fade in to a WTF-Pixar-would-be-proud effect. One CSS effect somewhere in between is the CSS flip effect, whereby there's...
![Making the Firefox Logo from HTML]()
When each new t-shirt means staving off laundry for yet another day, swag quickly becomes the most coveted perk at any tech company. Mozilla WebDev had pretty much everything going for it: brilliant people, interesting problems, awesome office. Everything except a t-shirt.
That had to change.
The basic...
![Full Width Textareas]()
Working with textarea widths can be painful if you want the textarea to span 100% width. Why painful? Because if the textarea's containing element has padding, your "width:100%" textarea will likely stretch outside of the parent container -- a frustrating prospect to say the least. Luckily...
The exact same thing annoyed me in the exact same environment, thanks for the heads up Dave :)
Hi david,
Favicon is the thing which people generally forgot to add in site and they got very massive 404 error for that, which is not shown to user but affect the site loading time, Thanks for easy and quick solution…
Avinash
It’s also probably worth noting this could be used for making dynamic icons without saving data to your host. Like a pretty graphic that displays the user’s name? Just throw the href attribute into the src attribute of a image tag.
IE6 is the only browser I have found this not to work on.
Yeah dude, that would be awesome.
Thats pretty cool, i’ve seen the base64 images like that before, does anyone know the full browser compatibility for using that?
This is the best solution, no more calls to /favicon.icon!
The W3C Validator uses this technique, too, to show if the site is valid or not in the URL bar.
http://validator.w3.org/check?uri=http%3A%2F%2Fjanbuschtoens.de%2F
Did you use any converter to turn your favicon into a long base64 string?
Thanks!
<?PHPecho base64_encode(file_get_contents('favicon.ico'));
Even better!
I’m pretty sure Data URIs don’t work in IE7.
http://stackoverflow.com/questions/1765342/which-browsers-support-data-uris-and-since-which-version
However, now that IE9 is out, SCREW IE7!
And IE6 has been dead to me for nigh on 3 years. Except where I’m currently working. : (
Thanks a lot :), have a nice day sir!
I’d really like to hear more about that… is it possible to change the favicon using JavaScript while the page is loaded? That would be neat for WebApplications stuck in an unopened tab to notify the user that something has happened, for instance with aninstant messenging thingy.
I think it’s only supported in FF and Opera, but here’s a nice post on changing favicons dynamically.
http://softwareas.com/dynamic-favicons
(and a demo)
http://ajaxify.com/run/favicon/
Surely that should be “debugging the hell out of me”?
Sorry… couldn’t resist!
:-)
Nice! :)
Beware of Internet Explorer!!!
As someone have said, this doesn’t work in IE6 or 7. In IE8 and above works.
Nevertheless there are solutions to integrate images this way with MHTML
http://www.phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under/
Interesting article! Do you know about setting base64 favicons globally with .htaccess? My website is configured to include the favicon regardless of what file you’re viewing, including images, CSS, and JavaScript files.
thanks a lot dude. i manage to change my favicon with this tutorial.
With GIF it’s even smaller:
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw(IE ≥ 11)