Snippets

Ben Buchanan css naked day javascript

You are viewing an old version of this snippet. View the current version.
Revised by Ben Buchanan bdfe16c
/*
Quick and dirty CSS Naked Day script - removes all linked, embedded and inline styles on April 9th.
Works in IE9+, noting conditional comments may still cause problems. Better to do this server-side if you can.
The MIT License (MIT) Copyright (c) 2015 Ben Buchanan http://opensource.org/licenses/MIT
*/
(function(){
    var today = new Date(), month = today.getMonth(), day = today.getDate(), elements, attrs;

    if (document.querySelectorAll && month === 3 && day === 9) {

        // Remove all linked stylesheets and style blocks
        elements = document.querySelectorAll('link, style');
        for (var i = 0; i < elements.length; i++) {
            elements[i].parentNode.removeChild(elements[i]);
        }

        // Remove all inline styles
        attrs = document.querySelectorAll('[style]');
        for (var ii = 0; ii < attrs.length; ii++) {
            attrs[ii].setAttribute('style', '');
        }

        // Inject a message at the top of the document
        var message = document.createElement('div');
        var body = document.getElementsByTagName('body')[0];
        message.innerHTML = '<p>Why is this page looking so simple? It\'s <a href="https://css-naked-day.github.io">CSS Naked Day</a>!</p><hr>';
        body.insertBefore(message, body.firstChild);
    }
})();
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.