Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于url动态导入.less文件_Javascript - Fatal编程技术网

Javascript 基于url动态导入.less文件

Javascript 基于url动态导入.less文件,javascript,Javascript,我有一个main.less文件,其中我有两个文件,我想根据url加载其中一个,例如: if url contain value=abc @import 'test1.less'; if url contain value=xyz @import 'test2.less'; 我只使用Javascript,没有JQuery 提前感谢。预编译较少您建议在运行时运行一些代码来更改预编译代码,这是不可能的,除非您在生产环境中使用it客户端,这将导致性能差和潜在的可靠性问题请参阅 我建议您将编译后的CSS

我有一个
main.less
文件,其中我有两个文件,我想根据url加载其中一个,例如:

if url contain value=abc
@import 'test1.less';
if url contain value=xyz
@import 'test2.less';
我只使用Javascript,没有JQuery


提前感谢。

预编译较少您建议在运行时运行一些代码来更改预编译代码,这是不可能的,除非您在生产环境中使用it客户端,这将导致性能差和潜在的可靠性问题请参阅

我建议您将编译后的CSS文件与以下内容一起使用:

var = cssURL;
if(window.location.href =="www.someurl.com/home"){
   cssURL = "style1.css";
}else{
   cssURL = "style2.css";
}
var head = document.head, link = document.createElement('link')

link.type = 'text/css';
link.rel = 'stylesheet';
link.href = cssURL;

head.appendChild(link);
但如果您使用较少的客户端,只需更改

link.rel = 'stylesheet/less';

你没有预编译你的Less吗?如果在生产环境中客户端使用较少的文件,那就太糟糕了
Thanks for ur help....I found a rather much better way...add a class to body tag and make these entries in main less file
.class1 {
  @import 'test1.less';
}
.class2 {
  @import 'test2.less';}

and then identify ur url and change class name

document.getElementsByTagName("body")[0].className="class2"

thats it