Мне интересно, есть ли способ загрузить один less лист после загрузки страницы. В этом вопросе есть ответ, в котором объясняется, как перезагрузить все листы, но для моих существующих прецедентов листы никогда не имеют зависимостей от недавно загруженных листов, и было бы хорошо просто добавьте лист лениво. Я думаю что-то вроде
less.sheets.push(mySheet);
less.loadStyleSheet(mySheet);
может представлять собой возможный API? Cheers,
Колин
ОБНОВЛЕНИЕ 3 Дек 2010:
Я опробовал исправление Livingston Samuel в файле less.js, и, хотя он работает, он не распознает определения в уже загруженных таблицах стилей. Вот мои примеры файлов
а. index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Simple</title>
<link rel="stylesheet/less" href="/static/less/style.less" id="abc123"/>
<script src="/static/js/less-1.0.40.js"></script>
</head>
<body>
<div id="container">
<div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
</div>
<div id="abc"><div>Bingo</div></div>
</body>
<script>
console.log("loading new sheet");
less.loadStyleSheet("/static/less/style2.less", function() {
console.log("Loaded!");
});
console.log("called");
</script>
</html>
б. style.less
@primary_color: green;
.rounded(@radius: 5px) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
#container {
background: @primary_color;
.rounded(5px);
div {
color: red;
}
}
с. style2.less
#abc {
background: @primary_color;
.rounded(10px);
div {
margin: 2px;
color: blue;
}
}
Таким образом, вторая таблица стилей загружается лениво, но она имеет следующую ошибку синтаксического анализа в style2.less
". rounded undefined"
.rounded определяется style.less, и поскольку я не выгружал этот лист, я думал, что он должен быть доступен компилятору в текущей среде.
Другими словами, мы не хотим начинать новую или выгружать существующие определения, а строить уже загруженные стили. Спасибо,
Колин