2017-02-26 73 views
0

我成功添加暗模式使用 This fiddle使用的sessionStorage保存暗模式

JS我的网站:

$('#mode').change(function(){ 

if ($(this).prop('checked')) 
{ 
    $('body').addClass('dark-mode'); 
} 
else 
{ 
    $('body').removeClass('dark-mode'); 
} 
}); 

但是,刷新页面时主题切换回明显。 我无法找到如何使用sessionstorage在域上保持黑暗模式。

有人可以帮助我吗? 谢谢!

+0

你需要会话存储中使用? Cookie或本地存储可以代替吗? –

+0

我不介意它是如何保存的,我不是最好的js,我不知道什么是最好的想法 – Stijn

回答

0

您可以使用本地存储用于存储数据

function darkmode(){ 
    $('body').addClass('dark-mode'); 
    localStorage.setItem("mode", "dark"); 
    } 



function nodark(){ 
     $('body').removeClass('dark-mode'); 
     localStorage.setItem("mode", "light"); 
     } 

    if(localStorage.getItem("mode")=="dark") 
     darkmode(); 
    else 
    nodark(); 

$('#mode').change(function(){ 

    if ($(this).prop('checked')) 
    { 
     darkmode(); 
    } 
    else 
    { 
     nodark(); 
    } 

}); 
+0

Cookie是一种过时的方法来存储某些数据,因为您不想发送请求有很多毫无意义的数据对服务器无用...... –

+0

使用此代码时,默认情况下会启用暗模式,并且在更改为默认主题后刷新时会切换回暗模式。另外,即使启用了暗模式,我也正在使用设置为默认值的开关。有没有解决方案? – Stijn

+0

我已编辑它。它现在应该工作 –