Skip to content

Instantly share code, notes, and snippets.

@shahid249
Created December 27, 2017 07:08
Show Gist options
  • Save shahid249/cc2c4f84777407a93ca9463a6e53a5ac to your computer and use it in GitHub Desktop.
Save shahid249/cc2c4f84777407a93ca9463a6e53a5ac to your computer and use it in GitHub Desktop.
How to change css link on click (Dark theme mode and light mode)
<html>
<head>
<title>Host Two Template</title>
<link rel="stylesheet" type="text/css" title="light" href="light.css">
<link rel="alternate stylesheet" type="text/css" title="dark" href="dark.css">
</head>
<body>
<div><h1>Content</h1></div>
<div>
<a href="#" onclick="switch_style('light');return false;" name="theme" value="light Theme" id="light">Light</a>
<a href="#" onclick="switch_style('dark');return false;" name="theme" value="dark Theme" id="dark">Dark</a>
</body>
<script>
// ***CUSTOMISED ***
var style_cookie_name = "style" ; //cookie name
var style_cookie_duration = 30 ; //duration of cache
var style_domain = "mdomain.com" ; //domain
// *** END OF CUSTOMISABLE SECTION ***
// You do not need to customise anything below this line
function switch_style ( css_title )
{
var i, link_tag ;
for (i = 0, link_tag = document.getElementsByTagName("link") ;
i < link_tag.length ; i++ ) {
if ((link_tag[i].rel.indexOf( "stylesheet" ) != -1) &&
link_tag[i].title) {
link_tag[i].disabled = true ;
if (link_tag[i].title == css_title) {
link_tag[i].disabled = false ;
}
}
set_cookie( style_cookie_name, css_title,
style_cookie_duration, style_domain );
}
}
function set_style_from_cookie()
{
var css_title = get_cookie( style_cookie_name );
if (css_title.length) {
switch_style( css_title );
}
}
function set_cookie ( cookie_name, cookie_value,
lifespan_in_days, valid_domain )
{
var domain_string = valid_domain ?
("; domain=" + valid_domain) : '' ;
document.cookie = cookie_name +
"=" + encodeURIComponent( cookie_value ) +
"; max-age=" + 60 * 60 *
24 * lifespan_in_days +
"; path=/" + domain_string ;
}
function get_cookie ( cookie_name )
{
var cookie_string = document.cookie ;
if (cookie_string.length != 0) {
var cookie_value = cookie_string.match (
'(^|;)[\s]*' +
cookie_name +
'=([^;]*)' );
return decodeURIComponent ( cookie_value[2] ) ;
}
return '' ;
}
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment