[removed] Change CSS File Dynamically + Cookie

前端 未结 2 1372
刺人心
刺人心 2020-12-16 08:10

I want to change the used CSS File () dynamically using only javascript and to save changes in cook

2条回答
  •  心在旅途
    2020-12-16 08:30

    maybe this could help you..

    (function() {
        var e = document.createElement('link'); 
        e.href = document.location.protocol + '//example.com/file.css';
        e.type = 'text/css';
        e.rel = 'stylesheet';
        e.media = 'screen';
        document.getElementsByTagName('head')[0].appendChild(e);      
    }());
    

    Edit, full JavaScript without jQuery

    function createCookie(name,value,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }
    
    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
    
    function eraseCookie(name) {
        createCookie(name,"",-1);
    }
    
    document.addEventListener('DOMContentLoaded',function(){
    
        if(readCookie('css')){
            var e = document.getElementById('test-css'); // 
            e.href = readCookie('css'); 
        }
    
        var element = document.getElementById('change-css'); // Click Here
        element.addEventListener('click', function (event) { 
            var e = document.getElementById('test-css');
            e.href = this.rel;
            if(readCookie('css')){  
                eraseCookie('css');     
            }
            createCookie('css',this.rel,365); 
            event.preventDefault(); 
        }, false);
    })
    

提交回复
热议问题