提问者:小点点

通过JS为.less样式表设置href


我正在使用cookies来了解用户在加载身体时是处于亮模式还是暗模式。如果找不到cookie,我总是使用light.less作为备用/默认。因此在我的

<link rel="stylesheet" type="text/css" href="../assets/main.css">
<link rel="stylesheet/less" type="text/css" id="colorMode" href="../assets/light.less">
<script src="../assets/less.js/dist/less.min.js" type="text/javascript"></script>

而我的body标签如下:

<body onload="checkNav(); checkCookies();" onresize="checkNav()">

checkcookies()是检查cookie并相应地执行操作的函数,如下所示。

function checkCookies() {
var style = getCookie("style");
if (style == 'dark') {
    document.getElementById("colorMode").href = "../assets/dark.less";
    document.getElementById("switchIcon").innerHTML = "toggle_on";
    document.cookie = "style=dark; path=/~sam.walker";
} 

else {
        //Already set by default
    }
}

code>getcookie()函数仅返回相关样式cookie

href=../assets/light.lesscolormode样式表按照预期更改为../assets/dark.less,这是我用检查器检查过的,但样式本身没有物理更改。我已经检查了缓存,与此无关。任何帮助都会得到很大的支持。


共2个答案

匿名用户

除非在页面的部分中添加了,否则将样式表包含为.less格式。

请在此处查看less.js中的用法信息

匿名用户

LESS.min.js将查找对较少文件的引用,并在加载时从中生成CSS。

在此之后,您将创建一个对LESS文件的新引用,此时LESS.js注意到这一点已经太晚了。

在链接到LESS样式表之后,但在加载LESS.js脚本之前,需要调用checkcookies();