Created
December 27, 2017 07:08
-
-
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)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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